- 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
接口的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
方法。对于可修改的列表,程序员还应该实现list iterator的
set
方法。 对于可变大小的列表,程序员还应该实现列表迭代器的remove
和add
方法。程序员通常应根据
Collection
接口规范中的建议提供void(无参数)和集合构造函数。此类是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)
将指定集合中的所有元素插入到指定位置的此列表中(可选操作)。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, 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
-
-
-
-
方法详细信息
-
get
public E get(int index)
返回此列表中指定位置的元素。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index)
)。 然后,它使用ListIterator.next
获取元素并返回它。- Specified by:
-
get
在界面List<E>
- Specified by:
-
get
在课程AbstractList<E>
- 参数
-
index
- 要返回的元素的索引 - 结果
- 此列表中指定位置的元素
- 异常
-
IndexOutOfBoundsException
- 如果指数超出范围(index < 0 || index >= size()
)
-
set
public E set(int index, E element)
用指定的元素替换此列表中指定位置的元素(可选操作)。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index)
)。 然后,它使用ListIterator.next
获取当前元素并将其替换为ListIterator.set
。注意,此实现将抛出
UnsupportedOperationException
如果列表迭代器没有实现set
操作。- Specified by:
-
set
在界面List<E>
- 重写:
-
set
在类AbstractList<E>
- 参数
-
index
- 要替换的元素的索引 -
element
- 要存储在指定位置的元素 - 结果
- 先前在指定位置的元素
- 异常
-
UnsupportedOperationException
- 如果此列表不支持set
操作 -
ClassCastException
- 如果指定元素的类阻止将其添加到此列表中 -
NullPointerException
- 如果指定的元素为null,并且此列表不允许null元素 -
IllegalArgumentException
- 如果指定元素的某些属性阻止将其添加到此列表中 -
IndexOutOfBoundsException
- 如果索引超出范围(index < 0 || index >= size()
)
-
add
public void add(int index, E element)
将指定元素插入此列表中的指定位置(可选操作)。 将当前位置的元素(如果有)和任何后续元素向右移动(将其添加到索引中)。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index)
)。 然后,它使用ListIterator.add
插入指定的元素。注意,此实现将抛出
UnsupportedOperationException
如果列表迭代器没有实现add
操作。- Specified by:
-
add
在界面List<E>
- 重写:
-
add
在类AbstractList<E>
- 参数
-
index
- 要插入指定元素的索引 -
element
- 要插入的元素 - 异常
-
UnsupportedOperationException
- 如果此列表不支持add
操作 -
ClassCastException
- 如果指定元素的类阻止将其添加到此列表中 -
NullPointerException
- 如果指定的元素为null且此列表不允许null元素 -
IllegalArgumentException
- 如果指定元素的某些属性阻止将其添加到此列表中 -
IndexOutOfBoundsException
- 如果指数超出范围(index < 0 || index > size()
)
-
remove
public E remove(int index)
删除此列表中指定位置的元素(可选操作)。 将任何后续元素向左移位(从索引中减去一个元素)。 返回从列表中删除的元素。此实现首先获取指向索引元素的列表迭代器(使用
listIterator(index)
)。 然后,它使用ListIterator.remove
删除元素。注意,此实现将抛出
UnsupportedOperationException
如果列表迭代器没有实现remove
操作。- Specified by:
-
remove
在界面List<E>
- 重写:
-
remove
in classAbstractList<E>
- 参数
-
index
- 要删除的元素的索引 - 结果
- 先前在指定位置的元素
- 异常
-
UnsupportedOperationException
- 如果此列表不支持remove
操作 -
IndexOutOfBoundsException
- 如果指数超出范围(index < 0 || index >= size()
)
-
addAll
public boolean addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到指定位置的此列表中(可选操作)。 将当前位置的元素(如果有)和任何后续元素向右移动(增加其索引)。 新元素将按照指定集合的迭代器返回的顺序出现在此列表中。 如果在操作正在进行时修改了指定的集合,则此操作的行为是不确定的。 (请注意,如果指定的集合是此列表,则会发生这种情况,并且它是非空的。)此实现获取指定集合上的迭代器以及指向索引元素的列表上的列表迭代器(使用
listIterator(index)
)。 然后,它迭代指定的集合,将从迭代器获得的元素一次一个地插入到此列表中,使用ListIterator.add
然后是ListIterator.next
(跳过添加的元素)。注意,此实现将抛出
UnsupportedOperationException
如果返回的列表迭代listIterator
方法没有实现add
操作。- Specified by:
-
addAll
in interfaceList<E>
- 重写:
-
addAll
在课程AbstractList<E>
- 参数
-
index
- 从指定集合中插入第一个元素的索引 -
c
- 包含要添加到此列表的元素的集合 - 结果
-
true
如果此列表因呼叫而更改 - 异常
-
UnsupportedOperationException
- 如果此列表不支持addAll
操作 -
ClassCastException
- 如果指定集合的元素的类阻止将其添加到此列表中 -
NullPointerException
- 如果指定的集合包含一个或多个null元素,并且此列表不允许null元素,或者指定的集合为null -
IllegalArgumentException
- 如果指定集合的元素的某些属性阻止将其添加到此列表中 -
IndexOutOfBoundsException
- 如果指数超出范围(index < 0 || index > size()
)
-
listIterator
public abstract ListIterator<E> listIterator(int index)
返回此列表中元素的列表迭代器(按适当顺序)。- Specified by:
-
listIterator
在界面List<E>
- 重写:
-
listIterator
在类AbstractList<E>
- 参数
-
index
- 从列表迭代器返回的第一个元素的索引(通过调用next
方法) - 结果
- 列表中的元素列表迭代器(按正确顺序)
- 异常
-
IndexOutOfBoundsException
- 如果指数超出范围(index < 0 || index > size()
)
-
-