
Map接口图补充待续
一:ArrayList
它实现 List 接口、底层使用数组保存所有元素,可调整大小的数组的实现List接口。 实现所有可选列表操作,并允许所有元素,包括null 。
线程 不同步。如果多个线程同时访问同个实例,并且至少有一个线程在结构上修改列表,则必须在外部进行同步。也可以使用Collections.synchronizedList方法进行包装。
List list = Collections.synchronizedList(new ArrayList(…));
底层使用数组实现, 构造方法 有三种ArrayList(),ArrayList(int initialCapacity),ArrayList( Collection <? extends E> c)。
下图是对应的构造源码截图。



可以看出ArrayList()
默认构造方法存储容量为空列表(这里针对jdk1.8,之前版本默认是定义长度为10),ArrayList(int initialCapacity)定义了一个制定初始容量的列表,ArrayList(Collection<? extends E> c))构造指定集合的元素列表。
ArrayList常用的一些方法
存储:add(E e)将指定的元素追加到此列表的末尾。

读取:get(int index),读取方法很简单,源码是直接判断下标异常和直接读取数组对应下标的值。源码如下

移除:remove(int index) ,删除该列表中指定位置的元素

二:LinkedList
LinkedList底层是一个 双向链表 结构,允许null值元素。
构造函数 (源码截图如下)

LinkedList() 构造一个空列表。
LinkedList(Collection<? extends E> c) 构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。
常用的一些方法:
存储:
add(E e)

常用的添加方法

默认添加元素在列表末尾处
读取:get(int index) 获取指定位置的元素
去除:remove(int index) 删除该列表中指定位置的元素。 将任何后续元素移动到左侧(从其索引中减去一个元素)。 返回从列表中删除的元素。
三: Vector
Vector类实现了可扩展的对象数组,同步的。 如果不需要 线程安全 的实现,建议使用ArrayList代替Vector 。
构造函数:Vector() ,Vector(Collection<? extends E> c) ,Vector(int initialCapacity, int capacityIncrement)

默认构造定义数组大小为10
常用方法:
add(E e)
将指定的元素追加到此Vector的末尾。
remove(int index)
删除此向量中指定位置的元素。
set(int index, E element)
用指定的元素替换此Vector中指定位置的元素。
下一节将讲解Set接口,待续。