List 概述

List是Collection三大直接子接口之一,List即列表,存储的是有序集合,里面的元素有序存储,可以重复.所谓有序集合,顾名思义,就是里面的元素存放是有顺序的,每个插入的元素都对应着一个序号,可以根据序号获取元素。

List对应线性结构中的线性表,数据之间是一对一的关系。可以在任意的位置插入删除更新元素同时能查询某个元素在列表中下标位置。其存储结构中顺序存储和链式存储分别对应ArrayList和LinkedList.

List接口定义

容器元素添加

Collection主要提供集合添加通用方法。而List基于线性表特性进行扩展

//可以在指定下标位置添加单个元素到列表中
void add(int index, E element);
//可以在指定下标位置开始,把指定集合中的所有元素添加到列表中.
boolean addAll(int index, Collection extends E> c);

继承至Collection中add方法基于线性表特性默认或添加到列表的尾部

boolean add(E e);

容器元素更新

指定下标修改某个元素值。

//指定下标修改某个元素值

E set(int index, E element);

容器元素查询

Collection主要提供containsAll,contains方法查看某个元素或容器是否存在于列表中。而List基于线性表提供了通过指定下标查询某个元素,或返回某个指定元素在集合中第一次出现的位置(从头部或从尾部)

//返回一个元素在集合中首次出现的位置
int indexOf(Object o);
//返回一个元素在集合中最后一次出现的位置
int lastIndexOf(Object o);
//获取指定位置的元素
E get(int index);
继承至Collection中containsAll,contains方法
//如果集合包含指定集合中的所有元素,返回true
boolean containsAll(Collection> c);
//判断集合中是否包含指定的元素,其依据是equals()方法
boolean contains(Object o);
容器元素删除
Collection主要提供remove,removeAll方法从容器中删除元素。而List基于线性表提供了,或删除指定下标范围中元素。
//删除指定某个下标中的元素
public E remove(int index)
//删除指定下标范围中元素
protected void removeRange(int fromIndex, int toIndex)
继承至Collection中containsAll,contains方法
boolean remove(Object o);
boolean removeAll(Collection> c);