1. List接口及主要实现类特点
List:有序、可重复(“动态”数组);因而常常使用List替换数组,因为List 的容量是动态的。
- ArrayList:底层使用Object[]存储
- 线程不安全,
- 添加、查找效率高
- LinkedList:底层使用双向链表存储
- 插入、删除效率高
- Vector:太古老,jkd1.0才使用,不介绍,
- 线程安全,效率低
2. List常用方法
系列一
Collection中的方法List都可以使用,因为List是Collection的子接口
系列二
因为List是有序的,进而就有了索引,所以就会增加一些多索引操作的方法:
插入元素
- void add(int index, Object ele):在index位置插入ele元素
- boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
获取元素
- Object get(int index):获取指定index位置的元素
- List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
获取元素索引
- int indexOf(Object obj):返回obj在集合中首次出现的位置
- int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
删除和替换元素
- Object remove(int index):移除指定index位置的元素,并返回此元素
- Object set(int index, Object ele):设置指定index位置的元素为ele