モジュール java.base
パッケージ java.util

クラスAbstractSequentialList<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.AbstractSequentialList<E>
型パラメータ:
E - このリスト内に存在する要素の型
すべての実装されたインタフェース:
Iterable<E>, Collection<E>, List<E>, SequencedCollection<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クラスの反対です。

リストを実装するには、プログラマは、このクラスを拡張して、listIteratorおよびsizeメソッドの実装を提供するだけで済みます。 変更不可能なリストの場合、プログラマはリスト・イテレータのhasNext, next, hasPrevious, previousおよびindexメソッドのみを実装する必要があります。

変更可能なリストの場合、プログラマは、リスト・イテレータのsetメソッドをさらに実装する必要があります。 可変サイズ・リストの場合、プログラマは、リスト・イテレータのremoveおよびaddメソッドをさらに実装する必要があります。

プログラマは、通常、Collectionインタフェース仕様の推奨事項に従って、void (引数なし)およびcollectionコンストラクタを指定する必要があります。

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

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

    • AbstractSequentialList

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

    • get

      public E get(int index)
      このリスト内の指定された位置にある要素を返します。

      この実装では、最初に、索引付き要素(with listIterator(index))を指すリスト・イテレータを取得します。 次に、ListIterator.nextを使用して要素を取得し、それを返します。

      定義:
      get、インタフェースList<E>
      定義:
      get、クラスAbstractList<E>
      パラメータ:
      index - 返される要素のインデックス
      戻り値:
      このリスト内の指定された位置にある要素
      例外:
      IndexOutOfBoundsException - 索引が(index < 0 || index >= size())の範囲外であるかどうか
    • set

      public E set(int index, E element)
      このリスト内の指定された位置にある要素を、指定された要素に置き換えます(オプションの操作)。

      この実装では、最初に、索引付き要素(with 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を加えます。

      この実装では、最初に、索引付き要素(with 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を減算)。 リストから削除された要素が返されます。

      この実装では、最初に、索引付き要素(with 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を加えます。 新しい要素は、指定されたコレクションのイテレータによって返される順序でこのリストに挿入されます。 オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。 (これは、指定されたコレクションがこのリストで、しかも空ではない場合に起こります。)

      この実装では、指定されたコレクションに対するイテレータと、索引付き要素(with listIterator(index))を指すリスト・イテレータを取得します。 次に、ListIterator.addに続けてListIterator.next (追加された要素をスキップ)を指定して、イテレータから取得した要素を一度に1つずつこのリストに挿入して、指定したコレクションを反復処理します。

      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())