ArrayList和LinkedList(选择数据结构的衡量标准)
2017-06-19 05:38
239 查看
理论是理想,实践实验才是真标准!!以下是理论总结,具体看业务需要和实际生产!
1.
ArrayList 根据元素下标读取快,因此更替元素也快:底层有数组Index.
LinkedList根据元素下标读取慢,更替元素慢:底层没有Index.
2.删除:ArrayList删除的元素越靠最前或者靠最后,速度越比同条件的LinkedList快,元素越多越明显。
LinkedList删除元素越靠中间删除速度比同条件的ArrayList越快,元素越多越明显。
3.添加(插入):
##在开始或者中间插入数据,LinkedList快,元素越多越明显。
##在末尾添加数据,容量足够ArrayList快,否则LinkedList快。只讲速度不考虑内存开销ArrayList,考虑内存而速度不讲究可以LinkedList。
PS:ArrayList内存动态扩容: new_memory_size = (old_memory_size) * 3 / 2。
以上是理论,元素越多效果越明显。最优解还是结合企业生产吧!
1.
ArrayList 根据元素下标读取快,因此更替元素也快:底层有数组Index.
LinkedList根据元素下标读取慢,更替元素慢:底层没有Index.
2.删除:ArrayList删除的元素越靠最前或者靠最后,速度越比同条件的LinkedList快,元素越多越明显。
LinkedList删除元素越靠中间删除速度比同条件的ArrayList越快,元素越多越明显。
3.添加(插入):
##在开始或者中间插入数据,LinkedList快,元素越多越明显。
##在末尾添加数据,容量足够ArrayList快,否则LinkedList快。只讲速度不考虑内存开销ArrayList,考虑内存而速度不讲究可以LinkedList。
PS:ArrayList内存动态扩容: new_memory_size = (old_memory_size) * 3 / 2。
以上是理论,元素越多效果越明显。最优解还是结合企业生产吧!
相关文章推荐
- 实现一个基于LinkedList的队列数据结构,去除ArrayList集合中重复的元素,
- 通过编码分别测试ArrayList 和 LinkedList 添加、删除对象时的耗时情况(精确到纳秒),并总结出以上两种集合的数据结构的不同之处。
- 通过编码分别测试ArrayList 和 LinkedList 添加、删除对象时的耗时情况(精确到纳秒),并总结出以上两种集合的数据结构的不同之处。
- 数据结构:ArrayList、Vector、LinkedList和HashMap、HashTable、LinkedHashMap、TreeMap
- Java数据结构之LinkedList、ArrayList的效率分析
- Java数据结构与算法之数据结构-逻辑结构-集合(六)------集合之ArrayList和LinkedList对比
- 对象容器 - Java对数据结构的封装 - List, ArrayList, LinkedList, Set, SortedSet, HashSet, Map, TreeMap
- 集合中list、ArrayList、LinkedList、Vector的区别、Collection接口的共性方法以及数据结构的总结
- 黑马程序员——List集合中ArrayList、linkedList、Vector的数据结构及特点
- 数据结构之线性表之顺序表和链表(通过数据结构角度深入理解arrayList和linkedList的特性)
- ArrayList,LinkedList,HashSet、HashMap的优缺点 原理 如何选择使用
- 对象容器 - Java对数据结构的封装 - List, ArrayList, LinkedList, Set, SortedSet, HashSet, Map, TreeMap
- Java数据结构之LinkedList、ArrayList的效率分析
- Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap
- Java数据结构之表的增删对比---ArrayList与LinkedList之一
- Collection 中ArrayList、LinkedList、Vector、Set的比较与运用
- Iterator Pattern (Collection接口&Iterator接口&ArrayList&LinkedList)
- Java集合分析:ArrayList、LinkedList、Vector
- ArrayList和LinkedList都是实现了List接口的类,他们都是元素的容器,用于存放对象的引用; 他们都可以对存放的元素进行增删改查的操作,还可以进行排序。 但是,他们还是有区别的。
- Java中ArrayList和LinkedList区别