- 类型参数:
-
E- 此列表中元素的类型
- 所有已实现的接口:
-
Iterable<E>,Collection<E>,List<E>,SequencedCollection<E>
- 直接已知的子类:
-
LinkedList
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 接口规范的建议。
这个类是 Java 集合框架 的成员。
- 自版本:
- 1.2
- 参见:
-
Field Summary
Fields declared in class java.util.AbstractList
modCount -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid在列表的指定位置插入指定的元素(可选操作)。booleanaddAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入到列表的指定位置(可选操作)。get(int index) 返回列表中指定位置的元素。iterator()返回此列表中元素的迭代器(按正确顺序)。abstract ListIterator<E> listIterator(int index) 返回此列表中元素的列表迭代器(按正确顺序)。remove(int index) 删除列表中指定位置的元素(可选操作)。用指定元素替换列表中指定位置的元素(可选操作)。Methods declared in class java.util.AbstractList
add, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, removeRange, subListMethods declared in class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toStringMethods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods declared in interface java.util.Collection
parallelStream, removeIf, stream, toArrayMethods declared in interface java.util.List
addAll, addFirst, addLast, contains, containsAll, getFirst, getLast, isEmpty, remove, removeAll, removeFirst, removeLast, replaceAll, retainAll, reversed, size, sort, spliterator, toArray, toArray
-
Constructor Details
-
AbstractSequentialList
protected AbstractSequentialList()唯一构造函数。(通常由子类构造函数隐式调用。)
-
-
Method Details
-
get
返回列表中指定位置的元素。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,使用ListIterator.next获取元素并返回它。- 指定者:
-
get在接口List<E>中 - 指定者:
-
get在类AbstractList<E>中 - 参数:
-
index- 要返回的元素的索引 - 返回:
- 此列表中指定位置的元素
- 抛出:
-
IndexOutOfBoundsException- 如果索引超出范围(index < 0 || index >= size())
-
set
用指定元素替换列表中指定位置的元素(可选操作)。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,使用ListIterator.next获取当前元素并用ListIterator.set替换它。请注意,如果列表迭代器不实现
set操作,此实现将抛出UnsupportedOperationException。- 指定者:
-
set在接口List<E>中 - 覆盖:
-
set在类AbstractList<E>中 - 参数:
-
index- 要替换的元素的索引 -
element- 要存储在指定位置的元素 - 返回:
- 先前在指定位置的元素
- 抛出:
-
UnsupportedOperationException- 如果此列表不支持set操作 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表 -
NullPointerException- 如果指定元素为 null 并且此列表不允许 null 元素 -
IllegalArgumentException- 如果指定元素的某些属性阻止将其添加到此列表 -
IndexOutOfBoundsException- 如果索引超出范围(index < 0 || index >= size())
-
add
在列表的指定位置插入指定的元素(可选操作)。将当前位于该位置的元素(如果有)和任何后续元素向右移动(将它们的索引加一)。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,使用ListIterator.add插入指定元素。请注意,如果列表迭代器不实现
add操作,此实现将抛出UnsupportedOperationException。- 指定者:
-
add在接口List<E>中 - 覆盖:
-
add在类AbstractList<E>中 - 参数:
-
index- 要插入指定元素的索引 -
element- 要插入的元素 - 抛出:
-
UnsupportedOperationException- 如果此列表不支持add操作 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表 -
NullPointerException- 如果指定元素为 null 并且此列表不允许 null 元素 -
IllegalArgumentException- 如果指定元素的某些属性阻止将其添加到此列表 -
IndexOutOfBoundsException- 如果索引超出范围(index < 0 || index > size())
-
remove
删除列表中指定位置的元素(可选操作)。将任何后续元素向左移动(从它们的索引中减去一个)。返回从列表中删除的元素。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,使用ListIterator.remove删除元素。请注意,如果列表迭代器不实现
remove操作,此实现将抛出UnsupportedOperationException。- 指定由:
-
remove在接口List<E>中 - 覆盖:
-
remove在类AbstractList<E>中 - 参数:
-
index- 要移除的元素的索引 - 返回:
- 指定位置之前的元素
- 抛出:
-
UnsupportedOperationException- 如果此列表不支持remove操作 -
IndexOutOfBoundsException- 如果索引超出范围(index < 0 || index >= size())
-
addAll
将指定集合中的所有元素插入到列表中的指定位置(可选操作)。将当前位于该位置的元素(如果有)和任何后续元素向右移动(增加它们的索引)。新元素将按照指定集合的迭代器返回它们的顺序出现在此列表中。如果在操作进行中修改了指定集合,则此操作的行为是未定义的。(请注意,如果指定集合是此列表且非空,则会发生这种情况。)此实现获取指定集合的迭代器和指向索引元素的此列表的列表迭代器(使用
listIterator(index))。然后,它遍历指定集合,逐个将从迭代器获取的元素插入到此列表中,使用ListIterator.add后跟ListIterator.next(跳过添加的元素)。请注意,如果
listIterator方法返回的列表迭代器不实现add操作,则此实现将抛出UnsupportedOperationException。- 指定由:
-
addAll在接口List<E>中 - 覆盖:
-
addAll在类AbstractList<E>中 - 参数:
-
index- 要从指定集合插入第一个元素的索引 -
c- 包含要添加到此列表的元素的集合 - 返回:
-
如果调用导致此列表更改,则返回
true - 抛出:
-
UnsupportedOperationException- 如果此列表不支持addAll操作 -
ClassCastException- 如果指定集合的元素的类阻止将其添加到此列表 -
NullPointerException- 如果指定集合包含一个或多个空元素且此列表不允许空元素,或者指定集合为null -
IllegalArgumentException- 如果指定集合的元素的某些属性阻止将其添加到此列表 -
IndexOutOfBoundsException- 如果索引超出范围(index < 0 || index > size())
-
iterator
返回此列表中元素的迭代器(按正确顺序)。此实现仅返回列表上的列表迭代器。
-
listIterator
返回此列表中元素的列表迭代器(按正确顺序)。- 指定由:
-
listIterator在接口List<E>中 - 覆盖:
-
listIterator在类AbstractList<E>中 - 参数:
-
index- 通过调用next方法从列表迭代器返回的第一个元素的索引 - 返回:
- 返回此列表中元素的列表迭代器(按正确顺序)
- 抛出:
-
IndexOutOfBoundsException- 如果索引超出范围(index < 0 || index > size())
-