JavaTM 2
Platform
Std. Ed. v1.4.0

java.util
インタフェース ListIterator

すべてのスーパーインタフェース:
Iterator

public interface ListIterator
extends Iterator

リストの反復子により、プログラマがいずれかの方向にリストをたどり、繰り返し処理時にリストを変更して、反復子の現在の位置をリストで取得することができます。ListIterator には現在の要素がありません。そのカーソル位置は、previous() の呼び出しによって返された要素と、next() の呼び出しによって返された要素との間に常にあります。長さ n のリスト内には、有効なインデックス値 n+10 から n までの間にあります (どちらの値も含む)。

          Element(0)   Element(1)   Element(2)   ... Element(n)   
        ^            ^            ^            ^               ^
 Index: 0            1            2            3               n+1

remove() メソッドと set(Object) メソッドは、カーソル位置によっては定義されません。これらのメソッドは、next() または previous() の呼び出しによって返された最後の要素を処理するために定義されます。

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

メソッドの概要
 void add(Object o)
          指定された要素をリストに挿入します (任意のオペレーション)。
 boolean hasNext()
          リストを順方向にたどったときに、リスト反復子がさらに要素を持っている場合に true を返します。
 boolean hasPrevious()
          リストを逆方向にたどったときに、リスト反復子がさらに要素を持っている場合に true を返します。
 Object next()
          リスト内の次の要素を返します。
 int nextIndex()
          次に next を呼び出したときに返されることになる要素のインデックスを返します。
 Object previous()
          リスト内の直前の要素を返します。
 int previousIndex()
          次に previous を呼び出したときに返されることになる要素のインデックスを返します。
 void remove()
          next または previous によって返された最後の要素をリストから削除します (任意のオペレーション)。
 void set(Object o)
          next または previous によって返された最後の要素を、指定された要素に置換します (任意のオペレーション)。
 

メソッドの詳細

hasNext

public boolean hasNext()
リストを順方向にたどったときに、リスト反復子がさらに要素を持っている場合に true を返します。つまり、next の呼び出しが例外をスローすることなく要素を返す場合は、true を返します。

定義:
インタフェース Iterator 内の hasNext
戻り値:
リストを順方向にたどったときに、リスト反復子がさらに要素を持っている場合は true

next

public Object next()
リスト内の次の要素を返します。このメソッドは、リストを反復するために繰り返し呼び出される場合と、前後に移動するために previous の呼び出しと組み合わされる場合があります。nextprevious の呼び出しを交互に行うと、繰り返し同じ要素が返されます。

定義:
インタフェース Iterator 内の next
戻り値:
リストの次の要素
例外:
NoSuchElementException - 繰り返し処理で次の要素がない場合

hasPrevious

public boolean hasPrevious()
リストを逆方向にたどったときに、リスト反復子がさらに要素を持っている場合に true を返します。つまり、previous の呼び出しが例外をスローすることなく要素を返す場合は、true を返します。

戻り値:
リストを逆方向にたどったときに、リスト反復子がさらに要素を持っている場合は true

previous

public Object previous()
リスト内の直前の要素を返します。このメソッドは、リストを後方から前方に向かって反復するために繰り返し呼び出される場合と、前後に移動するために next の呼び出しと組み合わされる場合があります。nextprevious の呼び出しを交互に行うと、繰り返し同じ要素が返されます。

戻り値:
リストの前の要素
例外:
NoSuchElementException - 繰り返し処理で前の要素がない場合

nextIndex

public int nextIndex()
次に next を呼び出したときに返されることになる要素のインデックスを返します。リスト反復子がリストの最後にある場合はリストのサイズを返します。

戻り値:
次に next を呼び出したときに返されることになる要素のインデックス。リスト反復子がリストの最後にある場合はリストのサイズ

previousIndex

public int previousIndex()
次に previous を呼び出したときに返されることになる要素のインデックスを返します。リスト反復子がリストの先頭にある場合は -1 を返します。

戻り値:
次に previous を呼び出したときに返されることになる要素のインデックス。リスト反復子がリストの先頭にある場合は -1

remove

public void remove()
next または previous によって返された最後の要素をリストから削除します (任意のオペレーション)。この呼び出しは next または previous の呼び出しごとに 1 回だけ行うことができます。この呼び出しは、前回の next または previous の呼び出し以降に ListIterator.add が呼び出されていない場合にだけ行うことができます。

定義:
インタフェース Iterator 内の remove
例外:
UnsupportedOperationException - リストの反復子が remove オペレーションをサポートしない場合
IllegalStateException - next または previous のどちらも呼び出されていない場合、あるいは前回の next または previous の呼び出しのあとで remove または add が呼び出された場合

set

public void set(Object o)
next または previous によって返された最後の要素を、指定された要素に置換します (任意のオペレーション)。この呼び出しは、前回の next または previous の呼び出し以降に ListIterator.removeListIterator.add のどちらも呼び出されていない場合にだけ行うことができます。

パラメータ:
o - next または previous によって返される最後の要素と置換される要素
例外:
UnsupportedOperationException - リストの反復子が set オペレーションをサポートしない場合
ClassCastException - 指定された要素のクラスのために、リストに要素を追加できない場合
IllegalArgumentException - この要素の一部の特性のために、リストに要素を追加できない場合
IllegalStateException - next または previous のどちらも呼び出されていない場合、あるいは前回の next または previous の呼び出しのあとで remove または add が呼び出された場合

add

public void add(Object o)
指定された要素をリストに挿入します (任意のオペレーション)。要素は、next によって返される次の要素があればその要素の直前、および previous によって返される次の要素があればその要素の直後に挿入されます。リストに要素がない場合は、新しい要素がリストの唯一の要素になります。新しい要素は、暗黙のカーソルの前に挿入されます。後続の next の呼び出しは影響を受けず、後続の previous の呼び出しは新しい要素を返します。この呼び出しは、nextIndex または previousIndex の呼び出しによって返される値を 1 増やします。

パラメータ:
o - 挿入される要素
例外:
UnsupportedOperationException - リスト反復子が add メソッドをサポートしていない場合
ClassCastException - 指定された要素のクラスのために、リストに要素を追加できない場合
IllegalArgumentException - この要素の特性が原因で、このリストに追加できない場合

JavaTM 2
Platform
Std. Ed. v1.4.0

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

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