ArrayList和LinkList
1.Array
(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。
Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据, (因为删除数据以后, 需要把后面所有的数据前移)
缺点: 数组初始化必须指定初始化的长度, 否则报错
2.List
List—是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,它继承Collection。
List有两个重要的实现类:ArrayList和LinkedList 、vector
2.1ArrayList
相当于能够自动增长容量的数组。适合多查询少插入删除的环境下。当然在最后插入也很适合,因为如果在开头和中间插入,后面所有的元素都要向后移动。
toArray返回一个数组
asList返回一个列表
基于数组实现,非线程,效率高,增删慢,查找快
2.2LinkList
相当于双链表。适合插入删除的环境。
基于链表实现,链表内存散列,增删快,查找慢
2.3Vector
基于数组实现,线程实现,效率低、增删慢、查找慢