请输入您要查询的百科知识:

 

词条 AbstractSequentialList
释义

public abstract class AbstractSequentialList<E>extends AbstractList<E>此类提供了 List 接口的骨干实现,从而最大限度地减少了实现受“连续访问”数据存储(如链接列表)支持的此接口所需的工作。对于随机访问数据(如数组),应该优先使用 AbstractList,而不是先使用此类。

配置

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

功能

要实现一个列表,程序员只需要扩展此类,并提供 listIterator 和 size 方法的实现即可。对于不可修改的列表,程序员只需要实现列表迭代器的 hasNext、next、hasPrevious、previous 和 index 方法即可。

对于可修改的列表,程序员应该再另外实现列表迭代器的 set 方法。对于可变大小的列表,程序员应该再另外实现列表迭代器的 remove 和 add 方法。

从某种意义上说,此类与在列表的列表迭代器上实现“随机访问”方法(get(int index)、set(int index, Object element)、set(int index, Object element)、add(int index, Object element) 和 remove(int index))的 AbstractList 类相对立,而不是其他关系。

按照 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 获得该元素并返回它。

指定者:

接口 List<E> 中的 get

指定者:

类 AbstractList<E> 中的 get

参数:

index - 要返回的元素的索引。

返回:

此列表中指定位置上的元素。

抛出:

IndexOutOfBoundsException - 如果指定的索引超出范围 (index < 0 || index >= size())。

set

public E set(int index,

E element)用指定的元素替代此列表中指定位置上的元素。

此实现首先获得一个指向索引元素的列表迭代器(通过 listIterator(index) 方法)。然后它使用 ListIterator.next 获得当前元素,并使用 ListIterator.set 替代它。

注意,如果列表迭代器没有实现 set 操作,则此实现抛出 UnsupportedOperationException。

指定者:

接口 List<E> 中的 set

覆盖:

类 AbstractList<E> 中的 set

参数:

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。

指定者:

接口 List<E> 中的 add

覆盖:

类 AbstractList<E> 中的 add

参数:

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。

指定者:

接口 List<E> 中的 remove

覆盖:

类 AbstractList<E> 中的 remove

参数:

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。

指定者:

接口 List<E> 中的 addAll

覆盖:

类 AbstractList<E> 中的 addAll

参数:

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()返回在此列表中的元素上进行迭代的迭代器(按适当顺序)。

此实现仅返回列表的一个列表迭代器。

指定者:

接口 Iterable<E> 中的 iterator

指定者:

接口 Collection<E> 中的 iterator

指定者:

接口 List<E> 中的 iterator

覆盖:

类 AbstractList<E> 中的 iterator

返回:

在此列表中的元素上进行迭代的迭代器(按适当顺序)。

另请参见:

AbstractList.modCount

listIterator

public abstract ListIterator<E> listIterator(int index)返回在此列表中的元素上进行迭代的列表迭代器(按适当顺序)。

指定者:

接口 List<E> 中的 listIterator

覆盖:

类 AbstractList<E> 中的 listIterator

参数:

index - 从列表迭代器返回(通过调用 next 方法)的第一个元素的索引

返回:

在此列表中的元素上进行迭代的列表迭代器(按适当顺序)。

另请参见:

AbstractList.modCount

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/7 3:03:01