LinkedList与ArrayList区别
1.ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更像数组。LinkedList的内部实现基于一组连接的记录,所以,它更像一个链表结构。
2.在ArrayList的前面或中间插入数据时,必须将其后的所有数据相应的后移,这样必然要花较多时间,所以,当你的操作是在一列数据的后面添加数据而不是前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能。
3.LinkedList是一个链表结构的集合,当要访问链表中的元素时,就要从链表的一端开始沿着连接方向一个一个元素地去查找,直到所需的元素为止,所以,当你操作是在一列数据前面或中间添加或删除元素,并且按照顺序访问其中的元素时,就应该用LinkedList
4.ArrayList的查询效率比较高,增删动作的效率比较差(因为ArrayList要移动数据),适用于查询比较频繁,增删动作较少的元素管理集合。
LinkedList的查询效率比较低(因为LinkedList要从头移动指针),但增删效率很高。适用于增删动作比较频繁,查询较少的元素管理集合。
5.LinkedList与ArrayList都是线程不安全的。