- すべてのスーパー・インタフェース:
Iterator<E>
public interface ListIterator<E> extends Iterator<E>
リスト用のイテレータ。プログラマがいずれかの方向にリストをトラバースしたり、イテレーション時にリストを変更したり、イテレータのリスト内での現在の位置を取得したりできます。
ListIterator
には現在の要素がありません。そのカーソル位置は常に、previous()
呼出しによって返される要素と、next()
呼出しによって返される要素との間にあります。 長さn
のリストのイテレータには、次のキャレット(^
)で示すように、n+1
個のカーソル位置があり得ます。
Element(0) Element(1) Element(2) ... Element(n-1) cursor positions: ^ ^ ^ ^ ^
remove()
メソッドとset(Object)
メソッドは、カーソル位置によっては定義されていません。これらのメソッドは、next()
またはprevious()
の呼出しによって返された最後の要素を処理するように定義されています。
このインタフェースは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
Collection
,List
,Iterator
,Enumeration
,List.listIterator()
-
メソッドのサマリー
修飾子と型 メソッド 説明 void
add(E e)
指定された要素をリストに挿入します(オプションの操作)。boolean
hasNext()
リストを順方向にトラバースしたときに、このリスト・イテレータがさらに要素を持っている場合にtrue
を返します。boolean
hasPrevious()
リストを逆方向にトラバースしたときに、このリスト・イテレータがさらに要素を持っている場合にtrue
を返します。E
next()
リスト内の次の要素を返し、カーソル位置を前に進めます。int
nextIndex()
次にnext()
を呼び出したときに返されることになる要素のインデックスを返します。E
previous()
リスト内の前の要素を返し、カーソル位置を逆方向に移動します。int
previousIndex()
次にprevious()
を呼び出したときに返されることになる要素のインデックスを返します。void
remove()
next()
またはprevious()
によって返された最後の要素をリストから削除します(オプションの操作)。void
set(E e)
next()
またはprevious()
から最後に返された要素を指定された要素で置き換えます(オプションの操作)。インタフェース java.util.Iteratorで宣言されたメソッド
forEachRemaining
-
メソッドの詳細
-
hasNext
boolean hasNext()リストを順方向にトラバースしたときに、このリスト・イテレータがさらに要素を持っている場合にtrue
を返します。 つまり、next()
が例外をスローするのではなく要素を返す場合は、true
を返します。 -
next
E next()リスト内の次の要素を返し、カーソル位置を前に進めます。 このメソッドは、リストを反復するために繰返し呼び出される場合と、前後に移動するためにprevious()
の呼び出しと組み合わされる場合があります。next
とprevious
の呼出しを交互に行うと、繰返し同じ要素が返されます。- 定義:
next
、インタフェース:Iterator<E>
- 戻り値:
- リストの次の要素
- 例外:
NoSuchElementException
- 反復処理で次の要素がない場合
-
hasPrevious
boolean hasPrevious()リストを逆方向にトラバースしたときに、このリスト・イテレータがさらに要素を持っている場合にtrue
を返します。 つまり、previous()
が例外をスローするのではなく要素を返す場合は、true
を返します。- 戻り値:
- リストを逆方向にたどったときに、リスト・イテレータがさらに要素を持っている場合は
true
-
previous
E previous()リスト内の前の要素を返し、カーソル位置を逆方向に移動します。 このメソッドは、リストを逆方向に反復するために繰返し呼び出される場合と、前後に移動するためにnext()
の呼び出しと組み合わされる場合があります。next
とprevious
の呼出しを交互に行うと、繰返し同じ要素が返されます。- 戻り値:
- リストの前の要素
- 例外:
NoSuchElementException
- 反復処理で前の要素がない場合
-
nextIndex
int nextIndex()次にnext()
を呼び出したときに返されることになる要素のインデックスを返します。 リスト・イテレータがリストの末尾にある場合はリストのサイズを返します。- 戻り値:
- 次に
next
を呼び出したときに返されることになる要素のインデックス。リスト・イテレータがリストの最後にある場合はリストのサイズ
-
previousIndex
int previousIndex()次にprevious()
を呼び出したときに返されることになる要素のインデックスを返します。 リスト・イテレータがリストの先頭にある場合は -1を返します。- 戻り値:
- 次に
previous
を呼び出したときに返されることになる要素のインデックス。リスト・イテレータがリストの先頭にある場合は -1
-
remove
void remove()next()
またはprevious()
によって返された最後の要素をリストから削除します(オプションの操作)。 この呼出しはnext
またはprevious
の呼び出しごとに1回だけ行うことができます。 この呼出しは、前回のnext
またはprevious
の呼出し以降にadd(E)
が呼び出されていない場合にだけ行うことができます。- 定義:
remove
、インタフェース:Iterator<E>
- 例外:
UnsupportedOperationException
-remove
オペレーションがこのリスト・イテレータでサポートされない場合IllegalStateException
-next
とprevious
のどちらも呼び出されていない場合、あるいはnext
またはprevious
の最後の呼出し後にremove
またはadd
が呼び出された場合
-
set
void set(E e)next()
またはprevious()
から最後に返された要素を指定された要素で置き換えます(オプションの操作)。 この呼出しは、前回のnext
またはprevious
の呼出し以降にremove()
とadd(E)
のどちらも呼び出されていない場合にだけ行うことができます。- パラメータ:
e
-next
またはprevious
によって返された最後の要素を置き換える要素- 例外:
UnsupportedOperationException
-set
オペレーションがこのリスト・イテレータでサポートされない場合ClassCastException
- 指定された要素のクラスが原因で、このリストにその要素を追加できない場合IllegalArgumentException
- 指定された要素のある特性が原因で、このリストにその要素を追加できない場合IllegalStateException
-next
とprevious
のどちらも呼び出されていない場合、あるいはnext
またはprevious
の最後の呼出し後にremove
またはadd
が呼び出された場合
-
add
void add(E e)指定された要素をリストに挿入します(オプションの操作)。 要素は、next()
によって返される要素(ある場合)の直前、およびprevious()
によって返される要素(ある場合)の直後に挿入されます。 リストに要素がない場合は、新しい要素がリストの唯一の要素になります。 新しい要素は、暗黙のカーソルの前に挿入されます。後続のnext
の呼出しは影響を受けず、後続のprevious
の呼出しは新しい要素を返します。 この呼出しは、nextIndex
またはpreviousIndex
の呼出しによって返される値を1増やします。- パラメータ:
e
- 挿入する要素- 例外:
UnsupportedOperationException
-add
メソッドがこのリスト・イテレータでサポートされない場合ClassCastException
- 指定された要素のクラスが原因で、このリストにその要素を追加できない場合IllegalArgumentException
- この要素のある特性が原因で、このリストにその要素を追加できない場合
-