- 类型参数:
E- 此list中元素的类型
- 所有已实现的接口:
Iterable<E>,Collection<E>,List<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 接口规范中的建议提供一个 void(无参数)和集合构造函数。
此类是 Java 集合框架 的成员。
- 自从:
- 1.2
- 参见:
-
字段摘要
在类 java.util.AbstractList 中声明的字段
modCount -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述void在此list中的指定位置插入指定元素(可选操作)。booleanaddAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入此list的指定位置(可选操作)。get(int index) 返回此list中指定位置的元素。iterator()返回此list中元素的迭代器(以正确的顺序)。abstract ListIterator<E>listIterator(int index) 返回此list中元素的列表迭代器(以正确的顺序)。remove(int index) 删除此list中指定位置的元素(可选操作)。用指定的元素替换此list中指定位置的元素(可选操作)。在类 java.util.AbstractList 中声明的方法
add, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, removeRange, subList在类 java.util.AbstractCollection 中声明的方法
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString在接口 java.util.Collection 中声明的方法
parallelStream, removeIf, stream, toArray在接口 java.util.List 中声明的方法
addAll, contains, containsAll, isEmpty, remove, removeAll, replaceAll, retainAll, size, sort, spliterator, toArray, toArray
-
构造方法详细信息
-
AbstractSequentialList
protected AbstractSequentialList()唯一的构造方法。 (对于子类构造方法的调用,通常是隐式的。)
-
-
方法详情
-
get
返回此list中指定位置的元素。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,它使用ListIterator.next获取元素并返回它。- 指定者:
get在接口List<E>中- 指定者:
get在类AbstractList<E>中- 参数:
index- 要返回的元素的索引- 返回:
- 此list中指定位置的元素
- 抛出:
IndexOutOfBoundsException- 如果索引超出范围 (index < 0 || index >= size())
-
set
用指定的元素替换此list中指定位置的元素(可选操作)。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,它使用ListIterator.next获取当前元素并将其替换为ListIterator.set。请注意,如果列表迭代器未实现
set操作,此实现将抛出UnsupportedOperationException。- 指定者:
set在接口List<E>中- 重写:
set在类AbstractList<E>中- 参数:
index- 要替换的元素的索引element- 要存储在指定位置的元素- 返回:
- 先前在指定位置的元素
- 抛出:
UnsupportedOperationException- 如果此list不支持set操作ClassCastException- 如果指定元素的类阻止它被添加到这个列表NullPointerException- 如果指定元素为空且此list不允许空元素IllegalArgumentException- 如果指定元素的某些属性阻止将其添加到此listIndexOutOfBoundsException- 如果索引超出范围 (index < 0 || index >= size())
-
add
在此list中的指定位置插入指定元素(可选操作)。将当前位于该位置的元素(如果有)和任何后续元素向右移动(将其索引加一)。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,它使用ListIterator.add插入指定的元素。请注意,如果列表迭代器未实现
add操作,此实现将抛出UnsupportedOperationException。- 指定者:
add在接口List<E>中- 重写:
add在类AbstractList<E>中- 参数:
index- 要插入指定元素的索引element- 要插入的元素- 抛出:
UnsupportedOperationException- 如果此list不支持add操作ClassCastException- 如果指定元素的类阻止它被添加到这个列表NullPointerException- 如果指定元素为空且此list不允许空元素IllegalArgumentException- 如果指定元素的某些属性阻止将其添加到此listIndexOutOfBoundsException- 如果索引超出范围 (index < 0 || index > size())
-
remove
删除此list中指定位置的元素(可选操作)。将任何后续元素向左移动(从其索引中减去一个)。返回从列表中删除的元素。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index))。然后,它删除带有ListIterator.remove的元素。请注意,如果列表迭代器未实现
remove操作,此实现将抛出UnsupportedOperationException。- 指定者:
remove在接口List<E>中- 重写:
remove在类AbstractList<E>中- 参数:
index- 要删除的元素的索引- 返回:
- 先前在指定位置的元素
- 抛出:
UnsupportedOperationException- 如果此list不支持remove操作IndexOutOfBoundsException- 如果索引超出范围 (index < 0 || index >= size())
-
addAll
将指定集合中的所有元素插入此list的指定位置(可选操作)。将当前位于该位置的元素(如果有)和任何后续元素向右移动(增加它们的索引)。新元素将按照指定集合的迭代器返回的顺序出现在该列表中。如果在操作进行时修改了指定的集合,则此操作的行为是未定义的。 (请注意,如果指定的集合是此list并且它是非空的,则会发生这种情况。)此实现获取指定集合上的迭代器和此list上指向索引元素的列表迭代器(使用
listIterator(index))。然后,它遍历指定的集合,将从迭代器获得的元素插入到此list中,一次一个,使用ListIterator.add后跟ListIterator.next(跳过添加的元素)。请注意,如果
listIterator方法返回的列表迭代器未实现add操作,则此实现将抛出UnsupportedOperationException。- 指定者:
addAll在接口List<E>中- 重写:
addAll在类AbstractList<E>中- 参数:
index- 从指定集合中插入第一个元素的索引c- 包含要添加到此list的元素的集合- 返回:
true如果此list因调用而更改- 抛出:
UnsupportedOperationException- 如果此list不支持addAll操作ClassCastException- 如果指定集合的元素的类阻止将其添加到此listNullPointerException- 如果指定的集合包含一个或多个空元素并且此list不允许空元素,或者如果指定的集合为空IllegalArgumentException- 如果指定集合的某个元素的某些属性阻止它添加到此listIndexOutOfBoundsException- 如果索引超出范围 (index < 0 || index > size())
-
iterator
返回此list中元素的迭代器(以正确的顺序)。此实现仅返回列表上的列表迭代器。
-
listIterator
返回此list中元素的列表迭代器(以正确的顺序)。- 指定者:
listIterator在接口List<E>中- 重写:
listIterator在类AbstractList<E>中- 参数:
index- 从列表迭代器返回的第一个元素的索引(通过调用next方法)- 返回:
- 此list中元素的列表迭代器(按正确顺序)
- 抛出:
IndexOutOfBoundsException- 如果索引超出范围 (index < 0 || index > size())
-