- すべてのスーパー・インタフェース:
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()
-
メソッドのサマリー
修飾子と型 メソッド 説明 voidadd(E e)指定された要素をリストに挿入します(オプションの操作)。booleanhasNext()リストを順方向にトラバースしたときに、このリスト・イテレータがさらに要素を持っている場合にtrueを返します。booleanhasPrevious()リストを逆方向にトラバースしたときに、このリスト・イテレータがさらに要素を持っている場合にtrueを返します。Enext()リスト内の次の要素を返し、カーソル位置を前に進めます。intnextIndex()次にnext()を呼び出したときに返されることになる要素のインデックスを返します。Eprevious()リスト内の前の要素を返し、カーソル位置を逆方向に移動します。intpreviousIndex()次にprevious()を呼び出したときに返されることになる要素のインデックスを返します。voidremove()next()またはprevious()によって返された最後の要素をリストから削除します(オプションの操作)。voidset(E e)next()またはprevious()から最後に返された要素を指定された要素で置き換えます(オプションの操作)。
-
メソッドの詳細
-
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- この要素のある特性が原因で、このリストにその要素を追加できない場合
-