对于处理一项列表数据项时,Java在LIst提供了两个字接口ArrayList和LinkedLIst,ArrayList的内部实现是基于内部数组Object【】,所以从概念上讲它更像是数组,但LinkedList的内部实现是基于一组链接的记录,所以更像是一个链表结构,所以性能上有很大差别。
在ArrayList的前面或者中间插入数据是,必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机的访问其中的元素时,使用ArrayList会提供比较好的性能;
而访问链表中的某个元素时,就必须从链表的一端开始沿着链接方向一个一个元素的去查找,知道找到所需的元素为止,所以,当你的操作是在一系列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素的时候,就应该使用LinkedList了。
如果在编程中,两种情形交替出现,这是,就可以考虑使用List这样的通用接口,而不用具体的实现,在具体的情形下,他的性能有具体的实现来保证。
案例:LinkedList实现堆栈
ArrayList的查询效率比较高,着呢改善动作的效率比较差,适用于查询比较频繁,增删动作较少的元素管理的集合。LinkedList的查询效率低,但是增删效率很高,适用于增删动作比较频繁,查询次数较少的元素管理集合。
ArrayList,LinkedList都是线程不安全的
但是java。util。Stack类,Stack是Vector的子类,Vector类是一个线程安全的(重量级的类),并继承了Vector的方法,Vector和ArrayList的功能击昏相同。
分享到:
相关推荐
List最全总结( ArrayList, LinkedList, 匿名类)
【Java面试题】ArrayList和LinkedList区别
Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别ArrayList底层实际是采用数组实现的(并且该数组的类型是
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要...
关于arraylist和linkedList的区别
2.在ArrayList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动 3.LinkedList不支持高效的随机元素访问 4.ArrayList的
Java ArrayList Vector LinkedList map区别 各种集合的区别 写得非常详细
#ArrayList 与 LinkedList 基准测试
java8 源码 List相关实现类的源码解析(JDK1.8) 2018.9.22- List的架构图 ArrayList 继承关系: ArrayList -> AbstractList 实现 List接口 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的...
Map+List+ArrayList+LinkedList Java源代码,适合初学者
Java面试题10.ArrayList LinkedList.mp4
《Vector、ArrayList、List使用深入剖析》-JAVA中文站(www_java-cn_com).htm
下面小编就为大家带来一篇java 集合之实现类ArrayList和LinkedList的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要给大家介绍了ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论。相信对大家的理解和学习具有一定的参考价值,有需要的...
今天介绍一下Java的两个集合类,ArrayList和LinkedList,这两个集合的知识点几乎可以说面试必问的。感兴趣的朋友跟随小编一起看看吧
主要介绍了如何区分Java中ArrayList和LinkedList,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
杂谈基本数据结构–线性表: ... ArrayList和LinkedList是顺序存储结构和链式存储结构的表在java语言中的实现. ArrayList提供了一种可增长数组的实现,使用ArrayList,因为内部使用数组实现,所以,它
Collections 源码 java Java Java的ArrayList、LinkedList、HashMap、TreeMap、LinkedHashMap、HashSet、TreeSet相关源码分析,及相关问题和应用总结。
集合(Arraylist,LinkedList)进阶思维导图