双向链表结构:pre data next
linkedList没有初始化容量,最初这个集合中没有任何元素,first和last都是null;
不管是linkedList还是ArrayList,以后写代码时不需要关心具体是哪个集合,因为我们是面向接口编程,调用的方法都是接口的方法;
Vector:
1、底层也是一个数组;
2、初始化容量:10;
3、怎么扩容:扩容之后是原容量的2倍;
4、ArrayList扩容特点:扩容特点是原容量的1.5倍;
5、Vector中所有的方法都是线程同步的,都带有synchronized关键字,是线程安全的。效率比较低,使用较少了;
6、怎么将一个线程不安全的ArrayList集合转换成线程安全的呢?
使用集合工具类:java.util.Collections;
java.util.Collection; 是集合接口
java.util.Collections; 是集合工具类
ArrayList