面试回答:
- 首先是数据结构实现不同:ArrayList是动态数组的数据结构实现,而LinkedList则是双向链表的数据结构实现;
- 随机访问效率不同:ArrayList比LinkedList在随机访问时效率高,因为LinkedList是线性的存储方式,所以需要移动指针从前到后依次查找;
- 增加和删除的效率不同:在非首尾的增删操作时,LinkedList要比ArrayList效率高,因为ArrayList在进行增删操作时,会影响数组内其他数据的下标。
故简而言之,在需要频繁读取数组中的元素时,更推荐使用ArrayList,在插入和删除操作较多时,更推荐使用LinkedList。