我们依然从数据结构的角度看度这个问题。
从命名上可以大致猜出来LinkedList的数据结构为链表,ArrayList的数据结构为数组。能够看到这里它们的区别就一目了然了:它们的区别大致就和数组和链表的区别是一样的。
在在查询和删除操作中数组的速度要优于链表,这是因为数组是按照下标来执行这两个操作的,而链表是靠遍历来执行的这两个操作,而且在删除操作后链表还有很有可能(除非是链表的最后的元素)移动元素,这是比较耗时的。
区别:
①ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
②对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
③对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。