JavaTM 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 を使用してください。

このクラスは 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

フィールドの概要
 
クラス java.util.AbstractList から継承されたフィールド
modCount
 
コンストラクタの概要
protected AbstractSequentialList()
          唯一のコンストラクタです。
 
メソッドの概要
 void add(int index, E element)
          リスト内の指定された位置に、指定された要素を挿入します (任意のオペレーション)。
 boolean addAll(int index, Collection<? extends E> c)
          指定されたコレクション内のすべての要素を、リストの指定された位置に挿入します (任意のオペレーション)。
 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)
指定されたコレクション内のすべての要素を、リストの指定された位置に挿入します (任意のオペレーション)。その位置とそれ以降に要素がある場合は、それらを右に移動して、各要素のインデックスに 1 を加えます。新しい要素は、指定されたコレクションの反復子によって返される順序でリストに挿入されます。オペレーションの進行中に、指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。つまり、指定されたコレクションがこのリストで、しかも空ではない場合に起こります。

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

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

定義:
インタフェース List<E> 内の addAll
オーバーライド:
クラス AbstractList<E> 内の addAll
パラメータ:
index - 指定されたコレクションの最初の要素を挿入する位置のインデックス
c - 要素がリストに追加されるコレクション
戻り値:
この呼び出しの結果、このリストが変更された場合は true
例外:
UnsupportedOperationException - addAll オペレーションがこのリストでサポートされない場合
ClassCastException - 指定されたコレクションのある要素のクラスが原因で、このリストにそのコレクションを追加できない場合
NullPointerException - 指定されたコレクションに 1 つ以上の null 要素が含まれており、このリストが null 要素を許可しない場合、または指定されたコレクションが null の場合
IllegalArgumentException - 指定されたコレクションのある要素のある特性が原因で、このリストにそのコレクションを追加できない場合
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 Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。