- 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を使用してください。このクラスは
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メソッドを実装します。変更可能なリストを実装するには、リスト・イテレータの
setメソッドも実装してください。 可変サイズのリストを実装するには、リスト・イテレータのremoveメソッドおよびaddメソッドも実装してください。Collectionインタフェースの仕様で推奨されているように、通常は、引数なしのvoidコンストラクタ、および引数にコレクションをとるコンストラクタを提供してください。このクラスは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
Collection,List,AbstractList,AbstractCollection
-
-
フィールドのサマリー
-
クラス java.util.AbstractListから継承されたフィールド
modCount
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedAbstractSequentialList()唯一のコンストラクタです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 voidadd(int index, E element)このリスト内の指定された位置に、指定された要素を挿入します(オプションの操作)。booleanaddAll(int index, Collection<? extends E> c)指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します(オプションの操作)。Eget(int index)このリスト内の指定された位置にある要素を返します。Iterator<E>iterator()このリスト内の要素を(適切な順序で)反復処理するイテレータを返します。abstract ListIterator<E>listIterator(int index)このリスト内の要素を適切な順序で反復処理するリスト・イテレータを返します。Eremove(int index)このリスト内の指定された位置にある要素を削除します(オプションの操作)。Eset(int index, E element)リスト内の指定された位置にある要素を、指定された要素に置き換えます(オプションの操作)。-
クラス java.util.AbstractCollectionから継承されたメソッド
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString
-
クラス java.util.AbstractListから継承されたメソッド
add, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, removeRange, subList
-
インタフェース java.util.Collectionから継承されたメソッド
parallelStream, removeIf, stream
-
-
-
-
メソッドの詳細
-
get
public E get(int index)
このリスト内の指定された位置にある要素を返します。この実装は、
listIterator(index)を使って、インデックスが付けられた要素を指すリスト・イテレータを最初に取得します。 次に、ListIterator.nextを使用して要素を取得し、それを返します。- 定義:
get、インタフェース:List<E>- 定義:
get、クラス:AbstractList<E>- パラメータ:
index- 返される要素のインデックス- 戻り値:
- このリスト内の指定された位置にある要素
- 例外:
IndexOutOfBoundsException- インデックスが範囲外の場合(index < 0||index>= size())
-
set
public E set(int index, E element)
リスト内の指定された位置にある要素を、指定された要素に置き換えます(オプションの操作)。この実装は、
listIterator(index)を使って、インデックスが付けられた要素を指すリスト・イテレータを最初に取得します。 次に、ListIterator.nextを使用して現在の要素を取得し、それをListIterator.setで置き換えます。この実装は、リスト・イテレータが
setオペレーションを実装しない場合にUnsupportedOperationExceptionをスローします。- 定義:
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)このリスト内の指定された位置に、指定された要素を挿入します(オプションの操作)。 その位置とそれ以降に要素があればそれらを右に移動させ、各要素のインデックスに1を加えます。この実装は、
listIterator(index)を使って、インデックスが付けられた要素を指すリスト・イテレータを最初に取得します。 次に、ListIterator.addを使用して、指定された要素を挿入します。この実装は、リスト・イテレータが
addオペレーションを実装しない場合にUnsupportedOperationExceptionをスローします。- 定義:
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)
このリスト内の指定された位置にある要素を削除します(オプションの操作)。 後続の要素は左に移動します(インデックス値から1を減算)。 リストから削除された要素が返されます。この実装は、
listIterator(index)を使って、インデックスが付けられた要素を指すリスト・イテレータを最初に取得します。 次に、ListIterator.removeを使用して、指定された要素を削除します。この実装は、リスト・イテレータが
removeオペレーションを実装しない場合にUnsupportedOperationExceptionをスローします。- 定義:
remove、インタフェース:List<E>- オーバーライド:
remove、クラス:AbstractList<E>- パラメータ:
index- 削除される要素のインデックス- 戻り値:
- 指定された位置に以前あった要素
- 例外:
UnsupportedOperationException-removeオペレーションがこのリストでサポートされない場合IndexOutOfBoundsException- インデックスが範囲外の場合(index < 0||index>= size())
-
addAll
public boolean addAll(int index, Collection<? extends E> c)指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します(オプションの操作)。 その位置とそれ以降に要素がある場合は、それらを右に移動して、各要素のインデックスに1を加えます。 新しい要素は、指定されたコレクションのイテレータによって返される順序でリストに挿入されます。 オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。 (つまり、指定されたコレクションがこのリストで、しかも空ではない場合に起こります。)この実装は、指定されたコレクションのイテレータを取得します。また、
listIterator(index)を使って、インデックスが付けられた要素を指す、このリストのリスト・イテレータを取得します。 そのあとで、指定されたコレクションを繰り返して調べて、イテレータから取得した要素をリストの適切な位置に1つずつ挿入します。挿入にはListIterator.addと、それに続けて、追加された要素をスキップするためにListIterator.nextを使用します。この実装は、
listIteratorメソッドが返したリスト・イテレータがaddオペレーションを実装しない場合にUnsupportedOperationExceptionをスローします。- 定義:
addAll、インタフェース:List<E>- オーバーライド:
addAll、クラス:AbstractList<E>- パラメータ:
index- 指定されたコレクションの最初の要素を挿入する位置のインデックスc- このリストに追加される要素を含むコレクション- 戻り値:
- 呼出しの結果としてこのリストが変更された場合は
true - 例外:
UnsupportedOperationException-addAllオペレーションがこのリストでサポートされない場合ClassCastException- 指定されたコレクションの要素のクラスが原因で、このリストにその要素を追加できない場合NullPointerException- 指定されたコレクションに1つ以上のnull要素が含まれており、このリストがnull要素を許可しない場合、または指定されたコレクションがnullの場合IllegalArgumentException- 指定されたコレクションの要素のあるプロパティが原因で、このリストにその要素を追加できない場合IndexOutOfBoundsException- インデックスが範囲外の場合(index < 0||index> size())
-
iterator
public Iterator<E> iterator()
このリスト内の要素を(適切な順序で)反復処理するイテレータを返します。この実装は、リストのリスト・イテレータを返すだけです。
-
listIterator
public abstract ListIterator<E> listIterator(int index)
このリスト内の要素を適切な順序で反復処理するリスト・イテレータを返します。- 定義:
listIterator、インタフェース:List<E>- オーバーライド:
listIterator、クラス:AbstractList<E>- パラメータ:
index- リスト・イテレータから(nextメソッド呼出しによって)返される最初の要素のインデックス- 戻り値:
- リスト内の要素を適切な順序で反復処理するリスト・イテレータ
- 例外:
IndexOutOfBoundsException- インデックスが範囲外の場合(index < 0||index> size())
-
-