public abstract class AbstractSequentialList
extends AbstractList<E>
java.lang.Object | |||
↳ | java.util.AbstractCollection<E> | ||
↳ | java.util.AbstractList<E> | ||
↳ | java.util.AbstractSequentialList<E> |
Known Direct Subclasses
LinkedList<E>
|
该类提供了List接口的骨架实现,以最大限度地减少实现由“顺序访问”数据存储(如链接列表)支持的接口所需的工作量。 对于随机访问数据(例如数组),应优先使用AbstractList而不是此类。
这个类是在这个意义上 AbstractList类相反,它实现了对列表的列表迭代器顶部的“随机访问”方法 (get(int index),set(int index, E element),add(int index, E element)和 remove(int index)),而不是周围的其他方法。
要实现一个列表,程序员只需要扩展这个类并提供listIterator和size方法的实现。 对于一个不可修改的列表,程序员只需要实现列表迭代器的hasNext,next,hasPrevious,previous和index方法。
对于可修改的列表,程序员应另外实现列表迭代器的方法set 。 对于可变大小的列表,程序员应另外实现列表迭代器的remove和add方法。
根据 Collection接口规范中的建议,程序员通常应该提供一个void(无参数)和集合构造函数。
此课程是 Java Collections Framework的成员。
Inherited fields |
---|
From class java.util.AbstractList
|
Protected constructors |
|
---|---|
AbstractSequentialList() 唯一的构造函数。 |
Public methods |
|
---|---|
void |
add(int index, E element) 将指定元素插入此列表中的指定位置(可选操作)。 |
boolean |
addAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入指定位置的此列表中(可选操作)。 |
E |
get(int index) 返回此列表中指定位置的元素。 |
Iterator<E> |
iterator() 返回此列表中元素的迭代器(按照正确的顺序)。 |
abstract ListIterator<E> |
listIterator(int index) 返回此列表中元素的列表迭代器(按适当顺序)。 |
E |
remove(int index) 删除此列表中指定位置的元素(可选操作)。 |
E |
set(int index, E element) 用指定的元素替换此列表中指定位置的元素(可选操作)。 |
Inherited methods |
|
---|---|
From class java.util.AbstractList
|
|
From class java.util.AbstractCollection
|
|
From class java.lang.Object
|
|
From interface java.util.List
|
|
From interface java.util.Collection
|
|
From interface java.lang.Iterable
|
AbstractSequentialList ()
唯一的构造函数。 (对于子类构造函数的调用,通常是隐式的。)
void add (int index, E element)
将指定元素插入此列表中的指定位置(可选操作)。 将当前位置的元素(如果有的话)和任何后续元素移到右侧(将其中的一个添加到它们的索引)。
该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它将使用ListIterator.add插入指定的元素。
注意,此实现将抛出 UnsupportedOperationException如果列表迭代器没有实现 add操作。
Parameters | |
---|---|
index |
int : index at which the specified element is to be inserted |
element |
E : element to be inserted |
Throws | |
---|---|
UnsupportedOperationException |
|
ClassCastException |
|
NullPointerException |
|
IllegalArgumentException |
|
IndexOutOfBoundsException |
boolean addAll (int index, Collection<? extends E> c)
将指定集合中的所有元素插入指定位置的此列表中(可选操作)。 将当前在该位置的元素(如果有的话)和随后的元素移到右侧(增加它们的索引)。 新元素将按照它们由指定集合的迭代器返回的顺序出现在此列表中。 如果在操作过程中修改了指定的集合,则此操作的行为未定义。 (请注意,如果指定的集合是这个列表,并且它是非空的,则会发生这种情况。)
此实现获取指定集合上的迭代器以及该列表上指向索引元素(包含listIterator(index) )的列表迭代器。 然后,它迭代指定的集合,使用ListIterator.add和ListIterator.next (跳过添加的元素),将迭代器获取的元素一次一个插入到此列表中。
注意,此实现将抛出 UnsupportedOperationException如果由 listIterator方法返回的列表迭代器没有实现 add操作。
Parameters | |
---|---|
index |
int : index at which to insert the first element from the specified collection |
c |
Collection : collection containing elements to be added to this list |
Returns | |
---|---|
boolean |
true if this list changed as a result of the call |
Throws | |
---|---|
UnsupportedOperationException |
|
ClassCastException |
|
NullPointerException |
|
IllegalArgumentException |
|
IndexOutOfBoundsException |
E get (int index)
返回此列表中指定位置的元素。
该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它获取使用ListIterator.next的元素并返回它。
Parameters | |
---|---|
index |
int : index of the element to return |
Returns | |
---|---|
E |
the element at the specified position in this list |
Throws | |
---|---|
IndexOutOfBoundsException |
Iterator<E> iterator ()
返回此列表中元素的迭代器(按照正确的顺序)。
这个实现只是在列表上返回一个列表迭代器。
Returns | |
---|---|
Iterator<E> |
an iterator over the elements in this list (in proper sequence) |
ListIterator<E> listIterator (int index)
返回此列表中元素的列表迭代器(按适当顺序)。
Parameters | |
---|---|
index |
int : index of first element to be returned from the list iterator (by a call to the next method) |
Returns | |
---|---|
ListIterator<E> |
a list iterator over the elements in this list (in proper sequence) |
Throws | |
---|---|
IndexOutOfBoundsException |
E remove (int index)
删除此列表中指定位置的元素(可选操作)。 将任何随后的元素向左移(从其索引中减去一个元素)。 返回从列表中移除的元素。
该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它使用ListIterator.remove删除元素。
注意,此实现将抛出 UnsupportedOperationException如果列表迭代器没有实现 remove操作。
Parameters | |
---|---|
index |
int : the index of the element to be removed |
Returns | |
---|---|
E |
the element previously at the specified position |
Throws | |
---|---|
UnsupportedOperationException |
|
IndexOutOfBoundsException |
E set (int index, E element)
用指定的元素替换此列表中指定位置的元素(可选操作)。
该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它获取使用ListIterator.next的当前元素并将其替换为ListIterator.set 。
注意,此实现将抛出 UnsupportedOperationException如果列表迭代器没有实现 set操作。
Parameters | |
---|---|
index |
int : index of the element to replace |
element |
E : element to be stored at the specified position |
Returns | |
---|---|
E |
the element previously at the specified position |
Throws | |
---|---|
UnsupportedOperationException |
|
ClassCastException |
|
NullPointerException |
|
IllegalArgumentException |
|
IndexOutOfBoundsException |