モジュール java.base
パッケージ 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を使用してください。

このクラスはAbstractListクラスと対になるものです。AbstractListは「ランダム・アクセス」用のメソッドであるget(int index)set(int index, E element)add(int index, E element)、およびremove(int index)をリストのリスト・イテレータの上位に実装しますが、このクラスでは逆になります。

リストを実装するには、このクラスを拡張して、listIteratorおよびsizeメソッドの実装を提供します。 変更不可能なリストを実装するには、リスト・イテレータのhasNextnexthasPreviousprevious、およびindexメソッドを実装します。

変更可能なリストを実装するには、リスト・イテレータのsetメソッドも実装してください。 可変サイズのリストを実装するには、リスト・イテレータのremoveメソッドおよびaddメソッドも実装してください。

Collectionインタフェースの仕様で推奨されているように、通常は、引数なしのvoidコンストラクタ、および引数にコレクションをとるコンストラクタを提供してください。

このクラスは、Java Collections Frameworkのメンバーです。

導入されたバージョン:
1.2
関連項目:
Collection, List, AbstractList, AbstractCollection
  • コンストラクタの詳細

    • AbstractSequentialList

      protected AbstractSequentialList()
      唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
  • メソッドの詳細

    • 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()
      このリスト内の要素を(適切な順序で)反復処理するイテレータを返します。

      この実装は、リストのリスト・イテレータを返すだけです。

      定義:
      iterator、インタフェース: Collection<E>
      定義:
      iterator、インタフェース: Iterable<E>
      定義:
      iterator、インタフェース: List<E>
      オーバーライド:
      iterator、クラス: AbstractList<E>
      戻り値:
      リスト内の要素を(適切な順序で)反復処理するイテレータ
    • listIterator

      public abstract ListIterator<E> listIterator​(int index)
      このリスト内の要素を(適切な順序で)反復するリスト・イテレータを返します。
      定義:
      listIterator、インタフェース: List<E>
      オーバーライド:
      listIterator、クラス: AbstractList<E>
      パラメータ:
      index - リスト・イテレータから(nextメソッド呼出しによって)返される最初の要素のインデックス
      戻り値:
      このリスト内の要素を(適切な順序で)反復するリスト・イテレータ
      例外:
      IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index> size())