Most visited

Recently visited

Added in API level 1

AbstractSequentialList

public abstract class AbstractSequentialList
extends AbstractList<E>

java.lang.Object
   ↳ java.util.AbstractCollection<E>
     ↳ java.util.AbstractList<E>
       ↳ java.util.AbstractSequentialList<E>
Known Direct Subclasses


该类提供了List接口的骨架实现,以最大限度地减少实现由“顺序访问”数据存储(如链接列表)支持的接口所需的工作量。 对于随机访问数据(例如数组),应优先使用AbstractList而不是此类。

这个类是在这个意义上 AbstractList类相反,它实现了对列表的列表迭代器顶部的“随机访问”方法 (get(int index),set(int index, E element),add(int index, E element)remove(int index)),而不是周围的其他方法。

要实现一个列表,程序员只需要扩展这个类并提供listIteratorsize方法的实现。 对于一个不可修改的列表,程序员只需要实现列表迭代器的hasNext,next,hasPrevious,previousindex方法。

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

根据 Collection接口规范中的建议,程序员通常应该提供一个void(无参数)和集合构造函数。

此课程是 Java Collections Framework的成员。

也可以看看:

Summary

Inherited fields

From class java.util.AbstractList

Protected constructors

AbstractSequentialList()

唯一的构造函数。

Public methods

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)

用指定的元素替换此列表中指定位置的元素(可选操作)。

Inherited methods

From class java.util.AbstractList
From class java.util.AbstractCollection
From class java.lang.Object
From interface java.util.List
From interface java.util.Collection
From interface java.lang.Iterable

Protected constructors

AbstractSequentialList

Added in API level 1
AbstractSequentialList ()

唯一的构造函数。 (对于子类构造函数的调用,通常是隐式的。)

Public methods

add

Added in API level 1
void add (int index, 
                E element)

将指定元素插入此列表中的指定位置(可选操作)。 将当前位置的元素(如果有的话)和任何后续元素移到右侧(将其中的一个添加到它们的索引)。

该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它将使用ListIterator.add插入指定的元素。

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

Parameters
index int: index at which the specified element is to be inserted
element E: element to be inserted
Throws
UnsupportedOperationException
ClassCastException
NullPointerException
IllegalArgumentException
IndexOutOfBoundsException

addAll

Added in API level 1
boolean addAll (int index, 
                Collection<? extends E> c)

将指定集合中的所有元素插入指定位置的此列表中(可选操作)。 将当前在该位置的元素(如果有的话)和随后的元素移到右侧(增加它们的索引)。 新元素将按照它们由指定集合的迭代器返回的顺序出现在此列表中。 如果在操作过程中修改了指定的集合,则此操作的行为未定义。 (请注意,如果指定的集合是这个列表,并且它是非空的,则会发生这种情况。)

此实现获取指定集合上的迭代器以及该列表上指向索引元素(包含listIterator(index) )的列表迭代器。 然后,它迭代指定的集合,使用ListIterator.addListIterator.next (跳过添加的元素),将迭代器获取的元素一次一个插入到此列表中。

注意,此实现将抛出 UnsupportedOperationException如果由 listIterator方法返回的列表迭代器没有实现 add操作。

Parameters
index int: index at which to insert the first element from the specified collection
c Collection: collection containing elements to be added to this list
Returns
boolean true if this list changed as a result of the call
Throws
UnsupportedOperationException
ClassCastException
NullPointerException
IllegalArgumentException
IndexOutOfBoundsException

get

Added in API level 1
E get (int index)

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

该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它获取使用ListIterator.next的元素并返回它。

Parameters
index int: index of the element to return
Returns
E the element at the specified position in this list
Throws
IndexOutOfBoundsException

iterator

Added in API level 1
Iterator<E> iterator ()

返回此列表中元素的迭代器(按照正确的顺序)。

这个实现只是在列表上返回一个列表迭代器。

Returns
Iterator<E> an iterator over the elements in this list (in proper sequence)

listIterator

Added in API level 1
ListIterator<E> listIterator (int index)

返回此列表中元素的列表迭代器(按适当顺序)。

Parameters
index int: index of first element to be returned from the list iterator (by a call to the next method)
Returns
ListIterator<E> a list iterator over the elements in this list (in proper sequence)
Throws
IndexOutOfBoundsException

remove

Added in API level 1
E remove (int index)

删除此列表中指定位置的元素(可选操作)。 将任何随后的元素向左移(从其索引中减去一个元素)。 返回从列表中移除的元素。

该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它使用ListIterator.remove删除元素。

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

Parameters
index int: the index of the element to be removed
Returns
E the element previously at the specified position
Throws
UnsupportedOperationException
IndexOutOfBoundsException

set

Added in API level 1
E set (int index, 
                E element)

用指定的元素替换此列表中指定位置的元素(可选操作)。

该实现首先获取指向索引元素的列表迭代器(带有listIterator(index) )。 然后,它获取使用ListIterator.next的当前元素并将其替换为ListIterator.set

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

Parameters
index int: index of the element to replace
element E: element to be stored at the specified position
Returns
E the element previously at the specified position
Throws
UnsupportedOperationException
ClassCastException
NullPointerException
IllegalArgumentException
IndexOutOfBoundsException

Hooray!