publicinterface List<E> extends Collection<E>
有序集合(也称为序列)。可以对每个集合内的元素由精确的控制(add.set.get.remove)可以通过其整数索引(集合的元素位置)访问元素,并搜索集合中元素的位置IndexOf(),lastIndexOf();
与设置不同,列表通常允许重复的元素。更正式地说,列表通常允许对元素e1和e2进行配对,e1 = e2 (e2),如果它们允许null元素,它们通常允许多个null元素。有人可能希望实现一个禁止重复的列表,在用户试图插入时抛出运行时异常,但我们希望这种用法非常少见,这并不是不可思议的。
列表接口对迭代器的契约、添加、删除、equals和hashCode方法进行了额外的规定,超出了集合接口中指定的规定。为了方便起见,这里还包括了其他继承方法的声明。
List接口提供了四种方法来访问列表元素的位置(索引)。列表(如Java数组)是基于零的。注意,这些操作可能与某些实现(例如LinkedList类)的索引值成比例地执行。因此,如果调用者不知道实现,那么迭代列表中的元素通常更可取。
List接口提供了一个特殊的迭代器,称为ListIterator,它允许元素插入和替换,以及迭代器接口提供的正常操作之外的双向访问。提供了一种方法来获取列表迭代器,它从列表中的指定位置开始。
List接口提供了搜索指定对象的两种方法。从性能的角度来看,这些方法应该谨慎使用。在许多实现中,它们将执行昂贵的线性搜索。
List接口提供了两种方法,可以有效地在列表的任意点插入和删除多个元素。
注意:虽然列表可以将自己包含为元素,但建议非常谨慎:在这样的列表中,equals和hashCode方法不再被定义。
一些列表实现对它们可能包含的元素有限制。例如,有些实现禁止空元素,有些实现对其元素的类型有限制。试图添加一个不合格的元素会抛出一个未检查的异常,通常是NullPointerException或ClassCastException。试图查询不合格元素的存在可能会抛出异常,或者它可能只是返回false;一些实现将展示前者的行为,而一些实现将展示后者。更一般的情况是,尝试对一个不合格的元素进行操作,其完成不会导致在列表中插入一个不合适的元素,可能会抛出异常,或者在实现的选项中可能会成功。在这个接口的规范中,这些异常被标记为“可选”。
这个是JDK1.8API List的实现
修饰符和类型 |
方法和描述 |
boolean |
|
void |
|
boolean |
addAll(Collection<? extends E> c) 将指定集合中的所有元素追加到该列表的末尾,并按照指定的集合的迭代器(可选操作)返回它们。 |
boolean |
addAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入到指定位置的这个列表(可选操作)。 |
void |
clear()从这个列表中删除所有元素(可选操作)。 |
boolean |
|
boolean |
containsAll |
boolean |
|
< |