JavaTM 2 Platform
Standard Ed. 6

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, E element)add(int index, E element)remove(int index))的 AbstractList 類別相對立,而不是其他關係。

要實作一個列表,開發人員只需要擴展此類別,並提供 listIteratorsize 方法的實作即可。對於不可修改的列表,開發人員只需要實作列表迭代器的 hasNextnexthasPreviouspreviousindex 方法即可。

對於可修改的列表,開發人員應該再另外實作列表迭代器的 set 方法。對於可變大小的列表,開發人員應該再另外實作列表迭代器的 removeadd 方法。

按照 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 操作
ClassCastException - 如果指定元素的類別不允許它添加到此列表
NullPointerException - 如果指定的元素為 null,並且此列表不允許 null 元素
IllegalArgumentException - 如果指定元素的某些屬性不允許它添加到此列表
IndexOutOfBoundsException - 如果索引超出範圍 (index < 0 || index >= size())

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 操作
ClassCastException - 如果指定元素的類別不允許它添加到此列表
NullPointerException - 如果指定的元素為 null,並且此列表不允許 null 元素
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 是此列表並且是非空(null)的,則會發生這種情況。)

此實作獲得指定 collection 的迭代器,以及此列表指向索引元素的列表迭代器(通過 listIterator(index) 方法)。然後,它在指定的 collection 上進行迭代,通過使用 ListIterator.next 之後緊接著使用 ListIterator.add 方法(以跳過添加的元素),把從迭代器中獲得的元素逐個插入此列表中。

注意,如果 listIterator 方法返回的列表迭代器沒有實作 add 操作,則此實作將會拋出 UnsupportedOperationException

指定者:
介面 List<E> 中的 addAll
覆寫:
類別 AbstractList<E> 中的 addAll
參數:
index - 將指定 collection 的第一個元素所插入位置的索引
c - 套件含要添加到此列表的元素的 collection
返回:
如果此列表由於調用而發生更改,則返回 true
拋出:
UnsupportedOperationException - 如果列表不支持 addAll 操作
ClassCastException - 如果指定 collection 中某個元素的類別不允許它添加到此列表
NullPointerException - 如果指定的 collection 套件含一個或多個 null 元素,並且該列表不允許 null 元素,或者指定的 collection 為 null
IllegalArgumentException - 如果指定 collection 的元素的某些屬性不允許它添加到此列表
IndexOutOfBoundsException - 如果索引超出範圍 (index < 0 || index > size())

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 方法)的第一個元素的索引
返回:
在此列表中的元素上進行迭代的列表迭代器(按適當順序)
拋出:
IndexOutOfBoundsException - 如果索引超出範圍 (index < 0 || index > size())
另請參見:
AbstractList.modCount

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only