List, ArrayList, LinkedList, CopyOnWriteArrayList, Vector
线程安全: Vector
, CopyOnWriteArrayList
, Collections.synchronizedList()
线程非安全:ArrayList
, LinkedList
数组:
ArrayList
Vecotr
CopyOnWriteArrayList
双向链表:LinkedList
通过三个添加元素的过程图,来看数据结构
ArrayList,Vector : 底层存储为数组
LinkedList : 底层存储为双向链表
CopyArrayList:底层存储为数组
ArrayList
LinkedList
Vector
CopyOnWriteArrayList
List
是有序的ArrayList
默认容量为10;LinkedList
, CopyOnWriteArrayList
默认容量为0new ArrayList<>()
内部的数组实际上引用的是一个空数组ArrayList
扩容规则 Collections.sort(list, new Comparator(){xxx})
Comparater
接口后,可以直接调用 Collections.sort(list);
CopyOnWriteArrayList
或 Collections.synchronizedList
来替代 Vector