1、list是一个有序的集合(也是被称为序列),和set不一样,list中允许重复元素的存在。
2、list的使用者对元素的插入位置(索引)有着准确的控制,通过索引可以获取元素。
3、list提供了各种方法来方便我们对其中的元素操作
4、list是java集合框架的一员
//返回list中的元素个数
int size();
//判断list中是否包含元素,如果不包含返回true
boolean isEmpty();
//判断list中是否包含某个特定的对象
boolean contains(Object o);
//以正确的顺序返回list中元素的迭代器
Iterator<E> iterator();
//返回一个包含list中所有元素的数组,数组中元素的顺序和list中的顺序一样
//这个方法可以当做array-based 和 collection-based API之间的桥梁
Object[] toArray();
//返回一个包含list中所有元素的数组,数组中元素的顺序和list中的顺序一样
//array数组的类型是确定的。如果指定的array大小不足,这个方法将会生成一个新的数组用于返回
//新数组的类型和运行时的数组类型一样
<T> T[] toArray(T[] a);
//在list的末尾插入元素(实现类可以选择插入的位置)
boolean add(E e);
//如果指定元素存在list中,移除list中第一次出现的指定元素(实现类可以选择具体的实现)
boolean remove(Object o);
//判断list中是否包含某个集合
boolean containsAll(Collection<?> c);
//将指定集合中的所有元素加到list的末尾
boolean addAll(Collection<? extends E> c);
//在指定位置插入指定集合
boolean addAll(int index, Collection<? extends E> c);
//删除list中包含的Collection中的所有元素
boolean removeAll(Collection<?> c);
//保留list中包含的Collection中的所有元素
boolean retainAll(Collection<?> c);
//将该列表的每个元素替换为将该运算符应用于该元素的结果。
default void replaceAll(UnaryOperator<E> operator);
//对list中的元素排列
default void sort(Comparator<? super E> c);
//删除list中的所有元素
void clear();
boolean equals(Object o);
int hashCode();
//根据索引获取list中的元素
E get(int index);
//用指定元素替换指定位置上的元素
E set(int index, E element);
//在指定位置上增加指定元素
void add(int index, E element);
//删除指定索引上的元素
E remove(int index);
//获取对象的第一个索引
int indexOf(Object o);
//获取对象的最后一个索引
int lastIndexOf(Object o);
//返回list的list 迭代器
ListIterator<E> listIterator();
//从指定位置返回list的迭代器
ListIterator<E> listIterator(int index);
//返回list的子list包含开始不包含结束的索引
List<E> subList(int fromIndex, int toIndex);
//Creates a {@link Spliterator} over the elements in this list.
default Spliterator<E> spliterator()