Java集合-List

85 阅读1分钟

List 继承于Collection接口,有序 可重复

ArrayList:数组,查询快,增删慢

* 可以插入null
* 初始化时默认容量0,当add时会分配10的初始容量
* 每次add都会检查容量,快溢出时会进行扩容(1.71.51.8是右移一位,也是1.5* 扩容:1.新建一个新数组 2.copy数据到新数组 3.地址指向新数组
* Add:不带index的add,直接在尾部插入;带index的add,会拷贝index之后的数组并放在index+1的位置里,然后把值插入index位置
* Size:初始化时只初始化elementData,也就是数组的大小,List可以容纳的最大元素数量,而size指的是List实际元素数量,在add时执行size++,所以当初始化完,size是0

LinkedList:链表,查询慢,增删快

Vector:数组,查询快,增删慢,线程安全

Stack:继承于Vector,后进先出的堆栈