黑马程序员技术交流社区
标题:
ArrayList,Vector, LinkedList的存储性能和特性
[打印本页]
作者:
为谁开?茶花满
时间:
2013-4-29 15:53
标题:
ArrayList,Vector, LinkedList的存储性能和特性
ArrayList,Vector, LinkedList的存储性能和特性
作者:
吴波
时间:
2013-4-29 16:02
|--ArrayList:底层数据结构是数组结构
特点:查询速度很快,但增删销慢,线程不同步
|--LinkedList:底层使用的是链表数据结构
特点:增删速度很快,查询稍慢
堆栈:先进后出 如同一个杯子
队列:先进先出 FIFO First in First out 如同一根水管
|--Vactator:底层是数组数据结构
特点:线程同步,1.2版本后被ArrayList替代了
由于枚举的名称和方法的名称都过长,所以被迭代器取代了
作者:
pthuakai
时间:
2013-4-29 16:13
ArrayList:数据结构中的顺序表。因为增删时,需要逐一移动增删点后的数据,因而增删时速度较慢。但是查询速度非常快。当操作的数据多是查询时,可以选择LinkedList链表数据结构,增删时只需要改变指针即可。但查询时,需要对指针进行遍历,因而查询速度慢。vector用来遍历元素,但是已经过时。
作者:
陈国斌
时间:
2013-4-29 16:59
Collection
|--List:元素是有序的,有索引,所以可以重复
|--ArrayList:底层使用的是数组数据结构,线程不同步,查询快,增删慢,默认长度是10,不够时,系统自动以50%比率延长。
|--LinkedList:底层使用的是链表数据结构,增删快,查询慢
|--vector:底层是数组结构,1.0版本出现,是同步的,被ArrayList替代。
|--Set:元素是无序的,不可以重复
|--HashSet底层是哈希表数据结构,线程是不同步的,添加进的对象按哈希表特有方式排序,保证元素唯一性的原理是判断元素的hashcode值是否相同,如果相同,还会使用元素的equals方法进行判断
|--TreeSet可以对set集合中的元素进行自然排序,但往里边存的对象必须具备比较性。
Map集合,存储键值对,而且要保证键的唯一
|--Hashtable底层是哈希表数据结构,不可以存入null作为键和值,线程同步JDK1.0出现,效率低
|--HashMap底层是哈希表数据结构,允许使用null键null值,线程不同步,JDK1.2出现,效率高
|--TreeMap底层是二叉树结构,线程不同步,可以用于给Map集合中的键进行排序
作者:
孙鑫
时间:
2013-4-29 17:53
ArrayList和Vector都是以数组的方式存储数据,在随机访问集合内的元素时效率比较高,但是要插入移动元素时需要涉及到内存的操作,效率较低.
Vector是线程安全的,相对于ArrayList来说效率较低.
LinkedList是以双向链表方式存储数据,在随机访问集合内元素时需要向前或向后遍历集合,所以效率较低,而当插入或移动元素时只需要在前后两个元素做个记录即可,所以当插入或移动元素时效率较高。
作者:
zoudeyong
时间:
2013-4-29 18:04
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
作者:
黄玉昆
时间:
2013-4-30 23:38
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2