/* List 接口的实现
- AarryList :
- 底层实现: 可变数组实现的,内部 通过数组拷贝实现根据内容可变长
- 优点 : 根据索引查询效率高
- 缺点 :错增加删除时效率低,因为要通过数组拷贝实现
- 应用场景: 存储耽搁数据,有序可以重复–>大量做查询,少量增删,推荐使用ArrayList
- 扩容: 在第一次添加数据时候初始容量10 , 通过Arrays.copyof方法进行动态扩容,每次扩容原容量的1.5倍 int newCapacity = oldCapacity + (oldCapacity >> 1);
- Vector:
- 底层实现: 可变数组实现的,
- 扩容:: 在第一次添加数据时候初始容量10 , 每次扩容原容量的2倍
- 与ArrayList不同点: 1)AarryList线程不安全 ,vector线程安全 2)扩容问题: ArrayList1.5倍增长 vector2倍增长 ArrayList更有利于节省内存
- LinkedList:
- 底层实现: 双向链表实现的
*优点:增删效率高 - 缺点: 查询效率低
- 应用场景: 存储耽搁数据,有序可以重复–>如果做大量的增删,少量的查询,推荐使用LinkedList
- ArrayList()
构造一个初始容量为 10 的空列表。
ArrayList(Collection<? extends E> c)
构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity)
构造一个具有指定初始容量的空列表。
*/