|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util
类 AbstractSequentialList<E>
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.AbstractSequentialList<E>
- 所有已实现的接口:
- Iterable<E>, Collection<E>, List<E>
- 直接已知子类:
- LinkedList
-
public abstract class AbstractSequentialList<E>
- extends AbstractList<E>
此类提供了 List 接口的骨干实现,从而最大限度地减少了实现受“连续访问”数据存储(如链接列表)支持的此接口所需的工作。对于随机访问数据(如数组),应该优先使用 AbstractList,而不是先使用此类。
从某种意义上说,此类与在列表的列表迭代器上实现“随机访问”方法(get(int index)、set(int index, Object element)、set(int index, Object element)、add(int index, Object element) 和 remove(int index))的 AbstractList 类相对立,而不是其他关系。
要实现一个列表,程序员只需要扩展此类,并提供 listIterator 和 size 方法的实现即可。对于不可修改的列表,程序员只需要实现列表迭代器的 hasNext、next、hasPrevious、previous 和 index 方法即可。
对于可修改的列表,程序员应该再另外实现列表迭代器的 set 方法。对于可变大小的列表,程序员应该再另外实现列表迭代器的 remove 和 add 方法。
按照 Collection 接口规范中的推荐,程序员通常应该提供一个 void(无参数)构造方法和 collection 构造方法。
此类是 Java Collections Framework 的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Collection
,List
,AbstractList
,AbstractCollection
字段摘要 |
---|
从类 java.util.AbstractList 继承的字段 |
---|
modCount |
构造方法摘要 | |
---|---|
protected |
AbstractSequentialList() 单独的构造方法。 |
方法摘要 | |
---|---|
void |
add(int index, E element) 在此列表中的指定位置上插入指定的元素。 |
boolean |
addAll(int index, Collection<? extends E> c) 在此列表中指定的位置上插入指定 collection 中的所有元素。 |
E |
get(int index) 返回此列表中指定位置上的元素。 |
Iterator<E> |
iterator() 返回在此列表中的元素上进行迭代的迭代器(按适当顺序)。 |
abstract ListIterator<E> |
listIterator(int index) 返回在此列表中的元素上进行迭代的列表迭代器(按适当顺序)。 |
E |
remove(int index) 移除此列表中指定位置上的元素。 |
E |
set(int index, E element) 用指定的元素替代此列表中指定位置上的元素。 |
从类 java.util.AbstractList 继承的方法 |
---|
add, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, removeRange, subList |
从类 java.util.AbstractCollection 继承的方法 |
---|
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
从接口 java.util.List 继承的方法 |
---|
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray |
构造方法详细信息 |
---|
AbstractSequentialList
protected AbstractSequentialList()
- 单独的构造方法。(由子类构造方法调用,通常是隐式的。)
方法详细信息 |
---|
get
public E get(int index)
-
返回此列表中指定位置上的元素。
此实现首先获得一个指向索引元素的列表迭代器(通过 listIterator(index) 方法)。然后它使用 ListIterator.next 获得该元素并返回它。
-
- 参数:
-
index
- 要返回的元素的索引。 - 返回:
- 此列表中指定位置上的元素。
- 抛出:
-
IndexOutOfBoundsException
- 如果指定的索引超出范围 (index < 0 || index >= size())。
set
public E set(int index, E element)
-
用指定的元素替代此列表中指定位置上的元素。
此实现首先获得一个指向索引元素的列表迭代器(通过 listIterator(index) 方法)。然后它使用 ListIterator.next 获得当前元素,并使用 ListIterator.set 替代它。
注意,如果列表迭代器没有实现 set 操作,则此实现抛出 UnsupportedOperationException。
-
- 参数:
-
index
- 要替代的元素的索引。 -
element
- 将存储在指定位置上的元素。 - 返回:
- 以前位于指定位置上的元素。
- 抛出:
-
UnsupportedOperationException
- 如果此列表不支持 set 操作。 -
NullPointerException
- 此列表不允许 null 元素,并且c
中的某个元素为 null。 -
ClassCastException
- 指定元素的类不允许它添加到此列表中。 -
IllegalArgumentException
- 指定元素的某方面不允许它添加到此列表中。 -
IndexOutOfBoundsException
- 索引超出范围 (index < 0 || index >= size())。 -
IllegalArgumentException
- 如果 fromIndex > toIndex。
add
public void add(int index, E element)
-
在此列表中的指定位置上插入指定的元素。向右移动当前位于该位置上的元素(如果有)以及所有后续元素(将其索引加 1)。
此实现首先获得一个指向索引元素的列表迭代器(通过 listIterator(index) 方法)。然后它使用 ListIterator.add 插入指定的元素。
注意,如果列表迭代器没有实现 add 操作,则此实现抛出 UnsupportedOperationException。
-
- 参数:
-
index
- 指定元素所插入位置的索引。 -
element
- 要插入的元素。 - 抛出:
-
UnsupportedOperationException
- 如果此列表不支持 add 操作。 -
NullPointerException
- 此列表不允许 null 元素,并且c
中的某个元素为 null。 -
ClassCastException
- 如果指定元素的类不允许它添加到此列表中。 -
IllegalArgumentException
- 如果指定元素的某方面不允许它添加到此列表中。 -
IndexOutOfBoundsException
- 如果指定的索引超出范围 (index < 0 || index > size())。
remove
public E remove(int index)
-
移除此列表中指定位置上的元素。向左移动所有后续元素(将其索引减 1)。
此实现首先获得一个指向索引元素的列表迭代器(通过 listIterator(index) 方法)。然后它使用 ListIterator.remove 移除该元素。
注意,如果列表迭代器没有实现 remove 操作,则此实现抛出 UnsupportedOperationException。
-
- 参数:
-
index
- 要从列表中移除的元素的索引。 - 返回:
- 从列表中移除的元素。
- 抛出:
-
UnsupportedOperationException
- 如果此列表不支持 remove 操作。 -
IndexOutOfBoundsException
- 如果指定的索引超出范围 (index < 0 || index > =size())。
addAll
public boolean addAll(int index, Collection<? extends E> c)
-
在此列表中指定的位置上插入指定 collection 中的所有元素。向右移动当前位于该位置上的元素(如果有)以及所有后续元素(增加其索引)。新元素将按指定 collection 的迭代器所返回的顺序出现在列表中。如果正在进行此操作时修改指定的 collection,则此操作行为是未指定的。(注意,如果指定的 collection 是此列表并且是非空的,则会发生这种情况。)可选操作。
此实现获得指定 collection 的迭代器,以及此列表指向索引元素的列表迭代器(通过 listIterator(index) 方法)。然后,它在指定的 collection 上进行迭代,通过使用 ListIterator.next 之后紧接着使用 ListIterator.add 方法(以跳过添加的元素),把从迭代器中获得的元素逐个插入此列表中。
注意,如果 listIterator 方法返回的列表迭代器没有实现 add 操作,则此实现抛出 UnsupportedOperationException。
-
- 参数:
-
index
- 插入指定 collection 中第一个元素的位置索引。 -
c
- 要插入到此列表的元素。 - 返回:
- 如果此列表随调用的结果而发生改变,则返回 true。
- 抛出:
-
UnsupportedOperationException
- 如果此列表不支持 addAll 操作。 -
NullPointerException
- 如果此列表不允许 null 元素,并且指定 collection 中的某个元素为 null。 -
ClassCastException
- 如果指定元素的类不允许它添加到此列表中。 -
IllegalArgumentException
- 如果指定元素的某方面不允许它添加到此列表中。 -
IndexOutOfBoundsException
- 如果指定的索引超出范围 (index < 0 || index > size())。 -
NullPointerException
- 如果指定的 collection 为 null。
iterator
public Iterator<E> iterator()
-
返回在此列表中的元素上进行迭代的迭代器(按适当顺序)。
此实现仅返回列表的一个列表迭代器。
-
- 返回:
- 在此列表中的元素上进行迭代的迭代器(按适当顺序)。
- 另请参见:
-
AbstractList.modCount
listIterator
public abstract ListIterator<E> listIterator(int index)
- 返回在此列表中的元素上进行迭代的列表迭代器(按适当顺序)。
-
- 指定者:
-
接口
List<E>
中的listIterator
- 覆盖:
-
类
AbstractList<E>
中的listIterator
-
- 参数:
-
index
- 从列表迭代器返回(通过调用next
方法)的第一个元素的索引 - 返回:
- 在此列表中的元素上进行迭代的列表迭代器(按适当顺序)。
- 另请参见:
-
AbstractList.modCount