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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
都是集合框架
ArrayList和Vector底层实现的是数组结构;LinkedList底层实现是链表结构。当查找操作比较多的时候(因为有索引),用前者比较好;当增删操作比较多的时候,用后者较好
Vector功能和ArrayList基本相同,但是Vector是较老版本的,线程安全的,较非线程安全的Arraylist效率低。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
. ArrayList与Vector都是基于数组实现的,这就说明ArrayList与Vector适合做遍历而不适合做频繁的插入和删除。
. vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高。
. 如果集合中的元素的数目大于目前集合数组的长度时,vector增长率为目前数组长度的100%,而arraylist增长率为目前数组长度的50%.
. 如过在集合中使用数据量比较大的数据,用vector有一定的优势
. LinkedList是基于链表实现的,所以它生来就是为了频繁插入与删除对象。

评分

参与人数 2技术分 +2 黑马币 +2 收起 理由
秦冲 + 2 很给力!
宁超 + 2 很给力!

查看全部评分

回复 使用道具 举报
上面两楼好像回答的很专业的样子- - 自己不能顺口就出 ...视频白看了.....

评分

参与人数 1黑马币 +5 收起 理由
宁超 + 5 一起加油

查看全部评分

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

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
ArrayList,Vector底层数据结构为数组,而 LinkedList底层数据结构为链表,ArrayList,Vector集合类有角标,有自己特有的方法,例如ArrayList中的迭代器ListIterator是特有的,除了Iterator的方法,还有修改,增加方法。三者的存储特点,上面朋友已经总结了,在这里加些。谢谢

评分

参与人数 1技术分 +2 收起 理由
admin + 2 补充得好

查看全部评分

回复 使用道具 举报
田忠 高级黑马 2011-10-31 22:18:30
7#
{:soso_e179:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马