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()