ArrayList和LinkedList在性能上各有优缺点,都有各自所适用的地方,总的说来可以描述如下:
1.对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配;而对LinkedList而言,这个开销是统一的,分配一个内部Entry对象。
2.在ArrayList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在LinkedList的中间插入或删除一个元素的开销是固定的。
3.LinkedList不支持高效的随机元素访问。
4.ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间
可以这样说:当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。
简写:
LinkeedList底层是链表
ArrayList底层是数组
对于随机访问set和get,ArrayList效率高,
因为LinkeedList要移动指针。
而ArrayList直接访问元素。
对于增加和删除,LinkeedList效率高,
因为ArrayList要移动数据。
而LinkeedList增加和删除耗费的时间基本固定
数据添加在后面的时候,并且需要随机访问时,ArrayList比较合适。
数据添加在前面或中间,并且顺序访问时,LinkeedList比较合适。
一般ArrayList常见。
下面是测试5000次运算的结果
测试结果
=========ArrayList AddLast=================
203ms
=========LinkedList AddLast================
125ms
=========ArrayList AddFirst=================
2625ms
=========LinkedList AddFirst================
62ms
=========ArrayList Get====================
15ms
=========LinkedList Get===================
37891ms
=========ArrayList Remove=================
2562ms
=========LinkedList Remove================
16ms
分享到:
相关推荐
比较ArrayList,LinkedList,Vector三者随机读取,插入,删除性能。
05丨ArrayList还是LinkedList?使用不当性能差千倍.html
NULL 博文链接:https://lf6627926.iteye.com/blog/1297695
主要给大家介绍了ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论。相信对大家的理解和学习具有一定的参考价值,有需要的...
ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储...那么ArrayList和LinkedList在性能上有什么差别呢?什么时候应该用ArrayList什么时候又该用LinkedList呢?
主要介绍了java 中ArrayList与LinkedList性能比较的相关资料,需要的朋友可以参考下
JAVA LinkedList和ArrayList的使用及性能分析,这篇文章也是以JAVA List的总结。
ArrayList 和 LinkedList 底层 . HashMap 及线程安全的 ConcurrentHashMap,以及各自优劣势 . Java 如何实现线程安全 . Synchronized 和 Lock 哪个更好? . HashMap 中的 get()方法是如何实现的? . HashMap 可以用...
5、switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上? .. 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? ....................... 9 7、char 型变量中能不...
ArrayList,vector,linkedlist区别 10. synchronized和volatile区别 11. 接⼝与抽象类的区别 12. jvm垃圾回收机制 13. Annotation关键字 14. 竟然还有后缀式这种东西 15. 编程题⼀道回溯法,⼀道双指针的问题 3. ...
4. int 和 Integer 有什么区别5. String 和StringBuffer的区别6. 说出ArrayList,Vector, LinkedList的存储性能和特性7. &和&&的区别8. HashMap和Hashtable的区别9. final, finally, finalize的区别10. Overload和...
4、 说出 ArrayList,Vector, LinkedList 的存储性能和特性 5、 Collection 和 Collections 的区别。 6、HashMap 和 Hashtable 的区别。 7、 线程的基本概念、线程的基本状态以及状态之间的关系 8、 abstract class...
25.ArrayList 和 LinkedList 的区别是什么? 26.如何实现数组和 List 之间的转换? 27.ArrayList 和 Vector 的区别是什么? 28.Array 和 ArrayList 有何区别? 29.在 Queue 中 poll()和 remove()有什么区别? 30....
ArrayList,Vector底层是由数组实现,LinkedList底层是由双线链表实现,从底层的实现可以得出性能问题ArrayList,Vector插入速度较慢,查询速度较快,而LinkedList插入速度较快,而查询速度较慢。再者由于Vevtor使用了...
Java集合框架:这部分问题关注ArrayList、LinkedList、HashMap、HashSet等集合类的特性和使用。例如,比较ArrayList和LinkedList的优缺点;解释HashMap的工作原理和如何处理哈希冲突;讨论如何选择合适的集合类来...
在这篇文章中,我要探讨的就是LinkedList和Vector/ Java列表对象的性能分析和测试 软件测试 SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector、ArrayList和LinkedList。...
在这篇文章中,我要探讨的就是LinkedList和Ve软件测试中的Java列表对象的性能分析和测试SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector、ArrayList和LinkedList。有关这些List类的...
比方,相同作为List的实现,LinkedList和ArrayList在随机訪问上的性能却差了好几个量级;比方相同是文件读写的实现,使用Stream方式和使用JAVA NIO的方式,其系能可能又会是还有一个数量级. 因此,尽管与设计优化相比,...