ArrayList(数组)
1、有序,可重复;
2、改查快,增删慢;
3、默认初始容量为10,每次扩容为1.5倍;
4、线程不安全,没有加锁
5、初始化的时候没有扩容,只有新增的时候才会判断是否扩容
LinkedList(双向链表)
1、有序,可重复;
2、增删快,改查慢;
3、不需要默认初始值,没有扩容
4、线程不安全
Vector(数组)
1、有序,可重复;
2、改查快,增删慢;
3、默认初始容量为10,每次扩容为2倍;
4、线程不安全
5、初始化的时候就开始指定初始容量,只有新增的时候才会判断是否扩容
CopyOnWriteArrayList(数组)
1、线程安全,主要用于读多写少的并发应用中。
2、不存在扩容的概念,每次新增都是copy旧的Object数组,然后创建一个比旧数组多一空间的新数组。
3、写操作是加锁,并且对整个list的copy操作时相当耗时的,过多的写操作不推荐使用该存储结构。