List作为Collection接口的子接口,可以使用Collection接口里的全部方法。
•void add(int index, Object element):将元素element插入在List集合的index处。
•boolean addAll(int index, Collection c):将集合c所包含的所有元素都插入在List集合的index处。
•Object get(int index):返回集合index索引处的元素。
•int lastIndexOf(Object o):返回对象o在List集合中最后一次出现的位置索引。
•Object remove(int index):删除并返回index索引处的元素。
•Object set(int index, Object element):将index索引处的元素替换成element对象,返回新元素。
•List subList(int fromIndex, int toIndex):返回从索引fromIndex(包含)到索引toIndex(不包含)处所有集合元素组成的子集合。
List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:
1.ArrayList是最常用的List实现类,根据需要动态增长的数组,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。
2.Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。
3.LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。
ArrayList中提供的方法主要有:
boolean add(Object o) 将元素添加到列表中。
void add(int index,Object o) 将元素插入列表的index位置,index从0开始。
void clear() 清除列表中所有元素
boolean contains(Object o) 列表是否含有指定的元素。
Object get(int index) 返回列表中index位置的元素。
boolean isEmpty() 列表中是否有元素。
Object remove(int index) 移除列表中index位置上的元素。
boolean remove(Object o) 移除列表中的指定元素。
int size() 返回列表中的元素个数。
toArray()方法:ArrayList转换为数组
List<String> strList = new ArrayList<String>();
strList.add("北京");
strList.add("上海");
strList.add("广东");
String[] aab = (String[]) strList.toArray();