ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
ArrayList和Vector在底层都是用数组来存储数据,插入时就会创造一个新数组并把数据全部转移至其内,因此在这两种数据结构中插入数据会有很大损耗,但是由于数组特性,他们索引取出数据性能较好。Vector更注重线程安全,所以通用性较差,大多数情况下可以用Arraylist就够了。LinkedList内部结构是双向链表,即保存一种含有前后索引的对象的引用的对象的方式(好纠结。。。),所以插入时只需要更改有限几个对象内的引用就可以了,所以插入损耗低。但是如果要以索引取出对象就麻烦了。在正着顺序遍历或倒着遍历时LinkedList性能也很好,只是在随机读取(按索引读取)时损耗高
1.arraylist 线程不同步 性能好点 vector 线程同步 性能差点
LinkedList 采用双向链表 索引数据要前后同时遍历(o(i)) 插入数据就记住插入 的前后项即刻 (o(1))
1. 扩充容量是50% 扩充容量是一倍
2. 都是基于数组的 o(n-i) 插入慢删除慢涉及到数组元素移动的内存操作
3. 时间复杂度 o(1) 查找快
分享到:
相关推荐
ArrayList Vector LinkedList 区别与用法.
Java ArrayList Vector LinkedList map区别 各种集合的区别 写得非常详细
ArrayList、LinkedList、Vector区别简介。
比较ArrayList,LinkedList,Vector三者随机读取,插入,删除性能。
对比Vector、ArrayList、LinkedList1
NULL 博文链接:https://lf6627926.iteye.com/blog/1297695
ArrayList、LinkedList、 Vector、Map 用法比较
Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别ArrayList底层实际是采用数组实现的(并且该数组的类型是
这是我从JDK中拿出的Arraylist,Vector,LinkedList源码,自己看源码的时候弄出来的,并写了一点自己的分析,仅供源码分析者使用
1. List概述List,就如图名字所示一样,是元素的有序列表 3. ArrayList示例[java] view plain copy public sta
介绍),当处理的数据集比较小的时候,差距不明显,甚至还表现差一点;但是,当数据集增长到数万或百万以上时,提高就非常大了,具体还是取决于处理器和系统环境。排序算法
ArrayList、Vector、LinkedList 的区别.docx
Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)
ArrayList和LinkedList基本经验法则: ArrayList就像一个数组。 这意味着从结尾处删除条目很快-内部仅缩短了数组的长度。 但是从头开始添加或删除条目很慢-在内部,这意味着将所有剩余的条目复制到新数组中。 如果...
主要介绍了Java中ArrayList与LinkedList列表结构的源码,文章最后对LinkedList和ArrayList以及Vector的特性有一个对比总结,需要的朋友可以参考下
ArrayList,Vector底层是由数组实现,LinkedList底层是由双线链表实现,从底层的实现可以得出性能问题ArrayList,Vector插入速度较慢,查询速度较快,而LinkedList插入速度较快,而查询速度较慢。再者由于Vevtor使用了...
ArrayList Vector LinkedList 类Stack HashSet TreeSet LinkedHashSet 类 PriorityQueue HashMap TreeMap 类 LinkedHashMap 类 Hashtable 类IdentityHashMap 类WeakHashMap 类 Collections 类集合实现类特征图 泛形 ...
《Vector、ArrayList、List使用深入剖析》-JAVA中文站(www_java-cn_com).htm
4 、ArrayList 和 LinkedList 的区别?分别用在什么场景? 5 、ArrayList 和 LinkedList 的底层数据结构是什么? 6 、ArrayList 默认大小是多少,是如何扩容的? 7 、List 是线程安全的吗?如果要线程安全要怎么做?...
Vector,ArrayList, LinkedList的区别是什么? 答: 1. Vector、ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形 式进行存储。 2. List中的元素有序、允许有重复的元素,Set中的元素无序、不允许...