ArrayList 和 LinkedList 的区别是什么?
答:
区别:
数据结构:
- ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实现。
随机访问方式:
-
LinkedList 是线性的数据存储方式,需要移动指针从前往后依次查找。
-
所以 ArrayList 比 LinkedList 在随机访问的时候效率要高,
增加和删除:
-
ArrayList 增删操作要影响数组内的其他数据的下标。
-
所以在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,
综合来说:
-
在需要频繁读取集合中的元素时,更推荐使用 ArrayList,
-
而在插入和删除操作较多时,更推荐使用 LinkedList。
共性:
- ArrayList 与 LinkedList 都是单列集合中 List 接口的实现类,他们都是存取有序,有索引,可重复的。