package java.util; import java.util.function.UnaryOperator; //顺序存储的数据结构的接口,链表,动态数组,队列,栈 //继承 Collection,大部分方法与Collection接口中的方法一致 public interface List<E> extends Collection<E> { // 查询方法,同Collection接口 int size(); boolean isEmpty(); boolean contains(Object o); Iterator<E> iterator(); Object[] toArray(); <T> T[] toArray(T[] a); // 修改方法 boolean add(E e); boolean remove(Object o); // 扩展方法,同Collection接口 boolean containsAll(Collection<?> c); boolean addAll(Collection<? extends E> c); boolean addAll(int index, Collection<? extends E> c); boolean removeAll(Collection<?> c); boolean retainAll(Collection<?> c); default void replaceAll(UnaryOperator<E> operator) { Objects.requireNonNull(operator); final ListIterator<E> li = this.listIterator(); while (li.hasNext()) { li.set(operator.apply(li.next())); } } @SuppressWarnings({"unchecked", "rawtypes"}) default void sort(Comparator<? super E> c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterator<E> i = this.listIterator(); for (Object e : a) { i.next(); i.set((E) e); } } void clear(); boolean equals(Object o); int hashCode(); // 含有index的方法 E get(int index);//查询index处的元素 E set(int index, E element);//设置index处的元素 void add(int index, E element);//index处插入元素 E remove(int index);//移除index处的元素 // 查找元素 int indexOf(Object o); //顺序查找第一个对象o,返回其index int lastIndexOf(Object o);//逆序(从后往前),返回其index // List Iterators ListIterator<E> listIterator(); ListIterator<E> listIterator(int index);//从list的index开始迭代,返回迭代器 // View 返回 子list,index从fromIndex 到 toIndex List<E> subList(int fromIndex, int toIndex); //可分割迭代器 @Override default Spliterator<E> spliterator() { return Spliterators.spliterator(this, Spliterator.ORDERED); } }