JAVA基础集合框架【三】ArrayList与LinkedList的区别
文章首发于:clawhub.club
线程安全
ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;
数据结构
LinkedList 是基于双向链表实现的,ArrayList 是基于数组实现的。
快速随机访问
ArrayList 支持随机访问,所以查询速度更快,LinkedList 添加、插入、删除元素速度更快。
内存空间占用
ArrayList的空间浪费主要体现在在list列表的结尾会预留一定的容量空间,LinkedList使用Node来存储数据每个Node中不仅存储元素的值,还存储了前一个 Node 的引用和后一个 Node 的引用,占用内存更多。
遍历方式选择
实现了RandomAccess接口的list,优先选择普通for循环 ,其次foreach,
未实现RandomAccess接口的list, 优先选择iterator遍历(foreach遍历底层也是通过iterator实现的),大size的数据,千万不要使用普通for循环。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!