簡介
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
--------------------------------------------------------------------------------
public abstract class AbstractSequentialList<E>extends AbstractList<E>此類提供了 List 接口的骨幹實現,從而最大限度地減少了實現受“連續訪問”數據存儲(如連結列表)支持的此接口所需的工作。對於隨機訪問數據(如數組),應該優先使用 AbstractList,而不是先使用此類。
從某種意義上說,此類與在列表的列表疊代器上實現“隨機訪問”方法(get(int index)、set(int index, Object element)、set(int index, Object element)、add(int index, Object element) 和 remove(int index))的 AbstractList 類相對立,而不是其他關係。
要實現一個列表,程式設計師只需要擴展此類,並提供 listIterator和 size 方法的實現即可。對於不可修改的列表,程式設計師只需要實現列表疊代器的 hasnext、next、hasPrevious、previous 和 index 方法即可。
對於可修改的列表,程式設計師應該再另外實現列表疊代器的 set 方法。對於可變大小的列表,程式設計師應該再另外實現列表疊代器的 remove和 add方法。
按照 Collection接口規範中的推薦,程式設計師通常應該提供一個 void(無參數)構造方法和 collection 構造方法。
此類是 Java Collections Framework的成員。
版本信息
從以下版本開始:1.2
另請參見:
Collection, List, AbstractList, AbstractCollection
--------------------------------------------------------------------------------
欄位摘要
從類 java.util.AbstractList 繼承的欄位
modCount
構造方法摘要
protectedAbstractSequentialList()
單獨的構造方法。
方法摘要
void add(int index, E element)
在此列表中的指定位置上插入指定的元素。
boolean addAll(int index, Collection<? extends E> c)
在此列表中指定的位置上插入指定 collection 中的所有元素。
E get(int index)
返回此列表中指定位置上的元素。
Iterator<E> iterator()
返回在此列表中的元素上進行疊代的疊代器(按適當順序)。
abstractListIterator<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
構造方法詳細信息
AbstractSequentialListprotected AbstractSequentialList()單獨的構造方法。(由子類構造方法調用,通常是隱式的。)
方法詳細信息
getpublic 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
publicIterator<E> iterator()返回在此列表中的元素上進行疊代的疊代器(按適當順序)。
此實現僅返回列表的一個列表疊代器。
指定者:
接口 Iterable<E> 中的 iterator
指定者:
接口 Collection<E> 中的 iterator
指定者:
接口 List<E> 中的 iterator
覆蓋:
類 AbstractList<E> 中的 iterator
返回:
在此列表中的元素上進行疊代的疊代器(按適當順序)。
另請參見:
AbstractList.modCount
--------------------------------------------------------------------------------
listIterator
public abstractListIterator<E> listIterator(int index)返回在此列表中的元素上進行疊代的列表疊代器(按適當順序)。
指定者:
接口 List<E> 中的 listIterator
覆蓋:
類 AbstractList<E> 中的 listIterator
參數:
index - 從列表疊代器返回(通過調用 next 方法)的第一個元素的索引
返回:
在此列表中的元素上進行疊代的列表疊代器(按適當順序)。
另請參見:
AbstractList.modCount