① ArrayList类
继承AbstractList接口实现了List接口可序列化,是可扩容动态数组,其内部是基于数组实现。默认初始化容量为10,后面自动扩容是1.5倍增长。
ArrayList可实现所有操作的列表,允许元素为空。
ArrayList非线性安全,多个线程事例返问ArrayList事例,并且至少一个线程改变了列表的结果,需要在外部同步。
此类iterator和listIterator方法的迭代器都有fail-fast(快速失败)机制,面对并发修改,迭代器会快速失败,抛出ConcurrentModificationException异常。
② Vector类
与ArrayList相似实现了可扩展的对象数组,默认初始化容量为10,自动扩容是2倍增长。
Vector是同步的。可使用多线程的情况。
Stack是Vector的子类,实现后进先出(LIFO)的栈。尾部插入(压栈),尾部删除(弹栈)。
③ AbstractSequentialList抽象类
仅支持链式访问,不支持随机访问的。迭代器遍历比for循环效率高。
LinkedList 继承AbstractSequentialList类实现了List接口,允许null元素。主要用于创建链表数据结构。不支持同步,需要自己实现同步。查询效率低。