下图为List接口的组成:
List接口继承自Collection接口
public interface List<E> extends Collection<E>
接口中函数没有具体实现。
(e1==null ? e2==null : e1.equals(e2))
//e1为null,则取决于e2,e2为null,则返回true,否则返回false,e1不为null,则就算e1.equals(e2)
int hashCode(){
int hashCode = 1;
for (E e : list)
hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
}
//可以确保equals成立则hashCode相等。
//获得迭代器:List有一个特定的迭代器,叫做ListIterator
Iterator<E> iterator();
ListIterator<E> listIterator();
ListIterator<E> listIterator(int index);//从指定下标开始的迭代器
List<E> subList(int fromIndex, int toIndex);
//如果两个参数相同,返回为空list
//并行迭代器,也叫可分迭代器,since1.8
//为处理并行操作而生,可以实现对并行操作的优化,集合都默认实现了该迭代器
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, Spliterator.ORDERED);
}