JavaTM 2 Platform
Standard Ed. 5.0

java.util
インタフェース ListIterator<E>

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

public interface ListIterator<E>
extends Iterator<E>

リストの反復子により、プログラマがいずれかの方向にリストをたどり、繰り返し処理時にリストを変更して、反復子の現在の位置をリストで取得することができます。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() の呼び出しによって返された最後の要素を処理するために定義されます。

このインタフェースは、Java Collections Framework のメンバです。

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

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

メソッドの詳細

hasNext

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

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

next

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

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

hasPrevious

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

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

previous

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

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

nextIndex

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

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

previousIndex

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

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

remove

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

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

set

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

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

add

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

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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