List接口有两个实现类:ArrayList和LinkedList
(1)ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。底层实现是:数组
(2)LinkedList采用链表存储方式。插入、删除元素时效率比较高,但是查询的效率较慢。底层实现是:链表
(3)List接口的方法:
1.add(Object o):添加元素或对象
2.add(int index,Object o):在指定的位置添加元素或对象
3.size():返回列表中的元素或对象的个数
4.get(int index):返回指定索引位置处的元素或对象。取出的元素是Object类型,使用前需要进 行强制类型转换
5.contains(Object o):判断列表中是否存在指定的元素或对象
6.remove(Object o):从列表中删除元素或对象
7.remove(int index):从列表中删除指定位置的元素,起始索引位置从0开始
(4)ArrayList实现了List接口。所以具有List接口的所有方法。
(5)当插入、删除操作频繁时,可使用LinkedList来提高效率
LinkedList提供了对头部和尾部元素进行添加和删除操作的方法
addFirst(Object o):在列表的首部添加元素
addLast(Object o):在列表的末尾添加元素
getFirst():返回列表中的第一个元素
getLast():返回列表中的最后一个元素
removeFirst():删除并返回列表中的第一个元素
removeLast():删除并返回列表中的最后一个元素