JavaTM Platform
Standard Ed. 6

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

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

public interface ListIterator<E>
extends Iterator<E>

リストの反復子により、プログラマがいずれかの方向にリストをトラバースし、繰り返し処理時にリストを変更して、反復子の現在の位置をリストで取得することができます。ListIterator には現在の要素がありません。 そのカーソル位置は、previous() の呼び出しによって返された要素と、next() の呼び出しによって返された要素との間に常にあります。長さ n のリストの反復子は、次のキャレット (^) で示されるような、n+1 個の可能なカーソル位置を持ちます。

Element(0)   Element(1)   Element(2)   ...Element(n-1)
カーソルの位置:  ^            ^            ^            ^                  ^
 
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 から最後に返された要素を指定された要素で置き換えます (任意のオペレーション)。
 

メソッドの詳細

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 - nextprevious のどちらも呼び出されていない場合、あるいは next または previous の最後の呼び出し後に remove または add が呼び出された場合

set

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

パラメータ:
e - next または previous から最後に返された要素を置き換える要素
例外:
UnsupportedOperationException - set オペレーションがこのリスト反復子でサポートされない場合
ClassCastException - 指定された要素のクラスが原因で、このリストにその要素を追加できない場合
IllegalArgumentException - 指定された要素のある側面が原因で、このリストにその要素を追加できない場合
IllegalStateException - nextprevious のどちらも呼び出されていない場合、あるいは next または previous の最後の呼び出し後に remove または add が呼び出された場合

add

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

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

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 も参照してください。