Array (数组)是基于索引(index)的数据结构,他使用索引在数组中读取和获取数据是很快的。
Array获取数据的时间复杂度是O(1)但是要删除数据却开销很大,因为需要重排数组中的所有数据 。
缺点:数组初始化必须指定初始化的长度,否则会报错。
List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,它继承Collection。
List有两个实现类:ArrayList和LinkList。
ArrayList是基于索引的数据接口,它的底层是数组,它可以以0(1)时间复杂度对元素进行随机访问,可以看做是能够自动增长容量的数组。
LinkList的底层是双向链表。
LinkList的插入、添加、删除操作速度更快,因为当元素被添加到任意集合时。不需要像数组那样重新计算大小,或更新索引。
LinkList比ArrayList更占内存,Linklist位每个节点存储了两个引用,一个指向一个元素,一个指向下一个元素。