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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liubea 中级黑马   /  2014-7-28 13:52  /  921 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 liubea 于 2014-8-8 00:33 编辑

想知道ArrayList和LinkedList的区别和各自的应用场合,希望大家得到大家的指教。

3 个回复

倒序浏览
ArryList 与linkedList 都实现了List 接口。
ArryList实现list 集合采用数组结构保存对象,数组结构的优点是便于对集合进行快速的随机访问,如果经常需要根据索引位置访问集合中的对象,由ArryList来实现List集合的效率较好。如果经常需要向List集合的指定位置插入对象或者删除List集合的指定索引位置的对象,使用ArryList的效率一般要低于LinkedList,且插入或删除的对象的索引位置越小效率越低,原因是因为当指定位置索引插入对象时,会同时将此索引位置之后的所有对象相应的向后移动一位。删除会同时向前移动一位。

LinkedList实现List接口采用链表结构保存对象。链表结构优点是便于向集合插入和删除对象。那么经常向集合中插入对象或者删除对象,应用LinkedList的效率较高。但是LinkedList随机访问对象的效率要低于ArryList。以上问题是因为链表结构在插入对象时只需要简单的需该链接位置,省去了移动对象的操作。在查询上LinkedList只能从链表的一端移动到另一端故效率较低。



总结一下ArryList与LinkedList的优缺点
1、ArryList 与LinkedList在列表末尾增加或者删除对象所花的开销是固定的。
2、ArryList内部插入或删除列表中此索引以后的对象都会被移动,效率低
LinkedList在内部插入或者删除对象所花的开销是固定的,效率高。
3、LinkedList不支持高效的随机访问元素。
由此可见如果只是在列表的末尾添加元素,并且还需要经常随机访问对象,那么应用ArryList将会得到更好的效率。如果需要经常列表内部增加元素,并要顺序访问元素那么LinkedList的能提供更好的效率。

点评

大神啊,我靠  发表于 2014-7-28 14:56

评分

参与人数 1黑马币 +3 收起 理由
渠嘉树 + 3 好详细啊

查看全部评分

回复 使用道具 举报
蔡爽 发表于 2014-7-28 13:57
ArryList 与linkedList 都实现了List 接口。
ArryList实现list 集合采用数组结构保存对象,数组结构的优点 ...

长知识了,谢谢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马