1.ArrayList:底层数组结构,LinkedList:底层链表结构
2.ArrayList:存储数据,查询快,增删慢
LinkedList:除了存储数据还会存储指向下个数据的指针,插入删除修改指针,增删快,查询慢。
扩展:数组查询快是因为数组的特性是 连续的内存空间和相同类型的数据,
假设一个长度为 10 的 int 类型的数组 int[] a = new int[10]来举例。下图,计算机给数组 a[10],分配了一块连续内存空间 1000~1039,其中,内存块的首地址为 base_address = 1000。
我们知道,计算机会给每个内存单元分配一个地址,计算机通过地址来访问内存中的数据。当计算机需要随机访问数组中的某个元素时,它会首先通过下面的寻址公式,计算出该元素存储的内存地址:
a[i]_address = base_address + i * data_type_size
其中 data_type_size 表示数组中每个元素的大小。我们举的这个例子里,数组中存储的是 int 类型数据,所以 data_type_size 就为 4 个字节
参考原文链接:https://blog.csdn.net/qianfeng_dashuju/article/details/107757477