JavaTM 2 Platform
Std. Ed. v1.3

java.util
クラス AbstractSequentialList

java.lang.Object
  |
  +--java.util.AbstractCollection
        |
        +--java.util.AbstractList
              |
              +--java.util.AbstractSequentialList
すべての実装インタフェース:
Collection, List
直系の既知のサブクラス:
LinkedList

public abstract class AbstractSequentialList
extends AbstractList

このクラスは、List インタフェースのスケルトン実装を提供し、リンクリストのような「順次アクセス」データ記憶域を基にするこのインタフェースを実装するのに必要な作業量を最小限に抑えます。配列のようなランダムアクセスデータを扱うには、このクラスではなく AbstractList を使用してください。

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

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

変更可能なリストを実装するには、リスト反復子の set メソッドも実装してください。可変長のリストを実装するには、リスト反復子の remove メソッドおよび add メソッドも実装してください。

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

導入されたバージョン:
1.2
関連項目:
Collection, List, AbstractList, AbstractCollection

クラス java.util.AbstractList から継承したフィールド
modCount
 
コンストラクタの概要
protected AbstractSequentialList()
          唯一のコンストラクタです。
 
メソッドの概要
 void add(int index, Object element)
          リストの指定された位置に、指定された要素を挿入します。
 boolean addAll(int index, Collection c)
          指定されたコレクションの要素のすべてを、リストの指定された位置に挿入します。
 Object get(int index)
          リスト内の指定された位置にある要素を返します。
 Iterator iterator()
          このリスト内の要素を適切な順序で繰り返し処理する反復子を返します。
abstract  ListIterator listIterator(int index)
          このリスト内の要素を適切な順序で繰り返し処理するリスト反復子を返します。
 Object remove(int index)
          リスト内の指定された位置から要素を削除します。
 Object set(int index, Object 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 Object get(int index)
リスト内の指定された位置にある要素を返します。

この実装は、listIterator(index) を使って、インデックスが付けられた要素を指すリスト反復子を最初に取得します。次に、ListIterator.next を使用して要素を取得し、それを返します。

オーバーライド:
クラス AbstractList 内の get
パラメータ:
index - 返す要素のインデックス
戻り値:
このリストの指定された位置にある要素
例外:
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index >= size())

set

public Object set(int index,
                  Object element)
リストの指定された位置にある要素を、指定された要素で置き換えます。

この実装は、listIterator(index) を使って、インデックスが付けられた要素を指すリスト反復子を最初に取得します。次に、ListIterator.next を使用して現在の要素を取得し、それを ListIterator.set で置き換えます。

この実装は、リスト反復子が set オペレーションを実装しない場合に UnsupportedOperationException をスローします。

オーバーライド:
クラス AbstractList 内の set
パラメータ:
index - 置換される要素のインデックス
element - 指定された位置に格納される要素
戻り値:
指定された位置に以前あった要素
例外:
UnsupportedOperationException - set がこのリストでサポートされない場合
NullPointerException - このリストが null 要素を許容せず、しかも c の要素の 1 つが null である場合
ClassCastException - 指定された要素のクラスがリストに追加できなかった場合
IllegalArgumentException - この要素の特性がリストに追加できなかった場合
IndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index > size())
IllegalArgumentException - fromIndex > toIndex

add

public void add(int index,
                Object element)
リストの指定された位置に、指定された要素を挿入します。現在その位置にある要素と後続の要素は右に移動します (インデックス値に 1 を加算)。

この実装は、listIterator(index) を使って、インデックスが付けられた要素を指すリスト反復子を最初に取得します。次に、ListIterator.add を使用して、指定された要素を挿入します。

この実装は、リスト反復子が add オペレーションを実装しない場合に UnsupportedOperationException をスローします。

オーバーライド:
クラス AbstractList 内の add
パラメータ:
index - 指定の要素が挿入されるインデックス
element - 挿入される要素
例外:
UnsupportedOperationException - リストが add オペレーションをサポートしていない場合
NullPointerException - このリストが null 要素を許容せず、しかも c の要素の 1 つが null である場合
ClassCastException - 指定された要素のクラスのために、リストへ要素を追加できない場合
IllegalArgumentException - この要素の特性がリストに追加できなかった場合
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index > size())

remove

public Object remove(int index)
リスト内の指定された位置から要素を削除します。そして、後続の要素を左側にシフトし、それぞれのインデックスから 1 を減算します。

この実装は、listIterator(index) を使って、インデックスが付けられた要素を指すリスト反復子を最初に取得します。次に、ListIterator.remove を使用して、指定された要素を削除します。

この実装は、リスト反復子が remove オペレーションを実装しない場合に UnsupportedOperationException をスローします。

オーバーライド:
クラス AbstractList 内の remove
パラメータ:
index - List から削除する要素のインデックス
戻り値:
リストから削除した要素
例外:
UnsupportedOperationException - このリストが remove オペレーションをサポートしない場合
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index >= size())

addAll

public boolean addAll(int index,
                      Collection c)
指定されたコレクションの要素のすべてを、リストの指定された位置に挿入します。現在その位置にある要素と後続の要素は右に移動し、インデックス値が増加します。新しい要素がリストに表示される順番は、指定されたコレクションの反復子によって返されたときの順番になります。このオペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。これは、指定されたコレクションがこのリストで、しかも空ではない場合に起こります。任意のオペレーションです。

この実装は、指定されたコレクションの反復子を取得します。また、listIterator(index) を使って、インデックスが付けられた要素を指す、このリストのリスト反復子を取得します。そのあとで、指定されたコレクションを繰り返して調べて、反復子から取得した要素をリストの適切な位置に 1 つずつ挿入します。挿入には ListIterator.add と、それに続けて、追加された要素をスキップするために ListIterator.next を使用します。

この実装は、listIterator メソッドが返したリスト反復子が add オペレーションを実装しない場合に UnsupportedOperationException をスローします。

オーバーライド:
クラス AbstractList 内の addAll
パラメータ:
index - 指定されたコレクションから最初の要素を挿入する位置のインデックス
c - リストに挿入される要素
戻り値:
この呼び出しの結果、このリストが変更された場合は true
例外:
UnsupportedOperationException - リストが addAll オペレーションをサポートしていない場合
NullPointerException - このリストが null 要素を許容せず、しかも指定されたコレクションの要素の 1 つが null である場合
ClassCastException - 指定された要素のクラスのために、リストに要素を追加できない場合
IllegalArgumentException - この要素の特性がリストに追加できなかった場合
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index > size())

iterator

public Iterator iterator()
このリスト内の要素を適切な順序で繰り返し処理する反復子を返します。

この実装は、リストのリスト反復子を返すだけです。

オーバーライド:
クラス AbstractList 内の iterator
戻り値:
リスト内の要素を適切な順序で繰り返し処理する反復子

listIterator

public abstract ListIterator listIterator(int index)
このリスト内の要素を適切な順序で繰り返し処理するリスト反復子を返します。
オーバーライド:
クラス AbstractList 内の listIterator
戻り値:
リスト内の要素を適切な順序で繰り返し処理するリスト反復子

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.