二.List接口:数组
一个能够包含重复元素的Collection,List中的元素不会自动排序,元素顺序由添加时的顺序决定。安全
具体实现类包括Vector(线程安全的),ArrayList,LinkedList 框架
基于数组的Vector,ArrayList查询操做较快,而基于双向链表的LinkedList 添加,删除操做较快函数
1.ArrayList:线程
咱们能够将其看做是可以自动增加容量的数组,能够利用 ArrayList 的 toArray()返 回一个数组,而迭代器(Iterator) 给咱们提供了一种通用的方式来访问集合中的元素。在 Java 中,标准数组是定长的,在数组建立以后,它们不能被加长或缩短,这也就意味着你必须事先知道数组能够容纳多少元素。可是,你直到运行时才能知道须要多大的数组,为了解决这个问题,类集框架定义了 ArrayList。本质上,ArrayList 是对象引用的一个变长数组,也就是说,ArrayList 可以动态地增长或减少其大小。数组列表以一个原始大小被建立,当超过了它的大小,类集自动增大,当对象被删除后,数组就能够缩小。对象
ArrayList 有以下的构造函数排序
–ArrayList( ) 创建一个空的数组列表索引
–ArrayList(Collection c) 创建一个数组列表,该数组列表由类集 c 中的元素初始化接口
–ArrayList(int capacity) 创建一个数组列表,该数组有指定的初始容量(capacity)ci
当使用 ArrayList 时,有时想要得到一个实际的数组,这个数组包含了列表的内容,能够经过调用方法 toArray()来实现它。下面是几个为何可能想将类集转换成为数组的缘由, a.对于特定的操做,能够得到更快的处理时间,b.为了给方法传递数组,而方法没必要重载去接收类集。Arrays.asList(),返回一个受指定数组支持的固定大小的列表。此方法同 Collection.toArray 一块儿,充当了基于数组的 API 与基于 collection 的API 之间的桥梁。
2.LinkedList:
LinkedList类是双向列表,列表中的每一个节点都包含了对前一个和后一个元素的引用.
LinkedList的构造函数以下
–public LinkedList(): ——生成空的链表
–public LinkedList(Collection col): 复制构造函数
3.Vector(线程安全):
Vector 有三个构造函数
public Vector(int initialCapacity,int capacityIncrement) Vector 运行时建立一个初始的存储容量initialCapacity,存储容量是以capacityIncrement 变量定义的增量增加
public Vector(int initialCapacity) 只建立初始存储容量
public Vector() 既不指定初始的存储容量也不指定capacityIncrement。
经常使用方法:
addElement(Object obj) 把组件加到向量尾部,同时大小加1,向量容量比之前大1
insertElementAt(Object obj, int index) 把组件加到所定索引处,此后的内容向后移动1 个单位
setElementAt(Object obj, int index) 把组件加到所定索引处,此处的内容被代替
removeElement(Object obj) 把向量中含有本组件内容移走
removeAllElements() 把向量中全部组件移走,向量大小为0