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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© IT农民工的日常 中级黑马   /  2016-4-11 23:42  /  662 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ArrayList  LinkedList 具体有什么区别?

6 个回复

倒序浏览
ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
回复 使用道具 举报
ArrayList底层是数组存储,LinkedList单链表存储。ArrayList插入删除元素慢,LinkedList插入删除元素快,适合场景不一样。
回复 使用道具 举报
首先,你要理解List的共性
List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

List集合支持对元素的增、删、改、查。
恰好这些四个功能的效果就是ArrayList跟LinkedList的区别体现

然后他的子类:ArrayList,LinkedList,Vector各自的特点。
ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。
LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。
Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。(这个除了举枚)

数组结构:
元素:O-O-O-O-O-O-O-O
索引:1  2  3  4  5  6  7  8
如上图,当需要查询的时候直接查询下标既可,效率会更快。但是需要在中间添加或删除的话,添加或删除元素后面的索引下标都需要更改。所以效率会很慢。
链表结构:
元素:O-O-O-O-O-O-O
索引:各自元素会记住前后是什么元素作为索引。
回复 使用道具 举报
都是list集合类的,只不过底层的实现形式不同,
回复 使用道具 举报
底层的数据结构不同,应用场景也不同。根据需求来判断来用哪个
回复 使用道具 举报
ArrayList底层数就结构是数组,查询修改快
LinkedList底层数据结构是链表,查询慢,增删快
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马