A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

ArrayList,Vector, LinkedList的存储性能和特性

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

倒序浏览
                                  |--ArrayList:底层数据结构是数组结构
                    特点:查询速度很快,但增删销慢,线程不同步

                |--LinkedList:底层使用的是链表数据结构
                    特点:增删速度很快,查询稍慢

                    堆栈:先进后出   如同一个杯子
                    队列:先进先出  FIFO   First in   First out 如同一根水管
                |--Vactator:底层是数组数据结构
                    特点:线程同步,1.2版本后被ArrayList替代了
                        由于枚举的名称和方法的名称都过长,所以被迭代器取代了

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
ArrayList:数据结构中的顺序表。因为增删时,需要逐一移动增删点后的数据,因而增删时速度较慢。但是查询速度非常快。当操作的数据多是查询时,可以选择LinkedList链表数据结构,增删时只需要改变指针即可。但查询时,需要对指针进行遍历,因而查询速度慢。vector用来遍历元素,但是已经过时。                                                                                

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
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集合中的键进行排序

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
ArrayList和Vector都是以数组的方式存储数据,在随机访问集合内的元素时效率比较高,但是要插入移动元素时需要涉及到内存的操作,效率较低.
Vector是线程安全的,相对于ArrayList来说效率较低.
LinkedList是以双向链表方式存储数据,在随机访问集合内元素时需要向前或向后遍历集合,所以效率较低,而当插入或移动元素时只需要在前后两个元素做个记录即可,所以当插入或移动元素时效率较高。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
黄玉昆 黑马帝 2013-4-30 23:38:05
7#
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马