List接口扩展了Collection并声明存储一系列元素的类集的特性。使用一个基于零的下标,元素可以通过它们在列表中的位置被插入和访问。
一个列表可以包含复制元素。除了由Collection定义的方法之外,List还定义了一些它自己的方法,这些方法总结在下表中。再次注意当类集不能被修改时,其中的几种方法引发UnsupportedOperation Exception异常。当一个对象与另一个不兼容,例如当企图将一个不兼容的对象加入一个类集中时,将产生ClassCastException异常。
由 List 定义的方法
方法 | 描述 |
---|---|
void add(int index, Object obj) | 将obj插入调用列表,插入位置的下标由index传递。任何已存在的,在插入点以及插入点之后的元素将前移。因此,没有元素被覆盖 |
boolean addAll(int index, Collection c) | 将c中的所有元素插入到调用列表中,插入点的下标由index传递。在插入点以及插入点之后的元素将前移。因此,没有元素被覆盖。如果调用列表改变了,则返回true;否则返回false |
Object get(int index) | 返回存储在调用类集内指定下标处的对象 |
int indexOf(Object obj) | 返回调用列表中obj的第一个实例的下标。如果obj不是列表中的元素,则返回-1 |
int lastIndexOf(Object obj) | 返回调用列表中obj的最后一个实例的下标。如果obj不是列表中的元素,则返回-1 |
ListIterator listIterator( ) | 返回调用列表开始的迭代程序 |
ListIterator listIterator(int index) | 返回调用列表在指定下标处开始的迭代程序 |
Object remove(int index) | 删除调用列表中index位置的元素并返回删除的元素。删除后,列表被压缩。也就是说,被删除元素后面的元素的下标减一 |
Object set(int index, Object obj) | 用obj对调用列表内由index指定的位置进行赋值 |
List subList(int start, int end) | 返回一个列表,该列表包括了调用列表中从start到end–1的元素。返回列表中的元素也被调用对象引用 |
对于由Collection定义的add( )和addAll( )方法,List增加了方法add(int, Object)和addAll(int, Collection)。这些方法在指定的下标处插入元素。由Collection定义的add(Object)和addAll(Collection)的语义也被List改变了,以便它们在列表的尾部增加元素。
为了获得在指定位置存储的对象,可以用对象的下标调用get( )方法。为了给类表中的一个元素赋值,可以调用set( )方法,指定被改变的对象的下标。调用indexOf( )或lastIndexOf( )可以得到一个对象的下标。
通过调用subList( )方法,可以获得列表的一个指定了开始下标和结束下标的子列表。
正如你能想象到的,subList( )方法使得列表处理十分方便。