Java-using-iterator
Java-イテレーターの使用方法
多くの場合、コレクション内の要素を循環する必要があります。 たとえば、各要素を表示できます。 これを行う最も簡単な方法は、イテレータを使用することです。イテレータは、イテレータまたはListIteratorインタフェースのいずれかを実装するオブジェクトです。
イテレータを使用すると、コレクションを循環して、要素を取得または削除できます。 ListIteratorは、Iteratorを拡張して、リストの双方向の走査と要素の変更を可能にします。
イテレータを介してコレクションにアクセスする前に、コレクションを取得する必要があります。 各コレクションクラスには、イテレータをコレクションの先頭に戻すiterator()メソッドがあります。 この反復子オブジェクトを使用すると、コレクション内の各要素に一度に1つの要素にアクセスできます。
一般的に、イテレータを使用してコレクションのコンテンツを循環するには、次の手順に従います-
- コレクションのiterator()メソッドを呼び出して、コレクションの先頭までのイテレーターを取得します。
- hasNext()を呼び出すループを設定します。 hasNext()がtrueを返す限り、ループを繰り返します。 *ループ内で、next()を呼び出して各要素を取得します。
Listを実装するコレクションの場合、ListIteratorを呼び出してイテレータを取得することもできます。
イテレータで宣言されたメソッド
Sr.No. | Method & Description |
---|---|
1 |
さらに要素がある場合はtrueを返します。 そうでなければ、falseを返します。 |
2 |
Object next( ) 次の要素を返します。 次の要素がない場合は、NoSuchElementExceptionをスローします。 |
3 |
void remove( ) 現在の要素を削除します。 next()の呼び出しが先行していないremove()を呼び出そうとすると、IllegalStateExceptionがスローされます。 |
ListIteratorによって宣言されたメソッド
Sr.No. | Method & Description |
---|---|
1 |
void add(Object obj) next()の次の呼び出しで返される要素の前のリストにobjを挿入します。 |
2 |
boolean hasNext( ) 次の要素がある場合にtrueを返します。 そうでなければ、falseを返します。 |
3 |
boolean hasPrevious( ) 前の要素がある場合はtrueを返します。 そうでなければ、falseを返します。 |
4 |
Object next( ) 次の要素を返します。 次の要素がない場合、NoSuchElementExceptionがスローされます。 |
5 |
int nextIndex( ) 次の要素のインデックスを返します。 次の要素がない場合、リストのサイズを返します。 |
6 |
Object previous( ) 前の要素を返します。 前の要素がない場合、NoSuchElementExceptionがスローされます。 |
7 |
int previousIndex( ) 前の要素のインデックスを返します。 前の要素がない場合は、-1を返します。 |
8 |
void remove( ) リストから現在の要素を削除します。 next()またはprevious()が呼び出される前にremove()が呼び出されると、IllegalStateExceptionがスローされます。 |
9 |
void set(Object obj) objを現在の要素に割り当てます。 これは、next()またはprevious()の呼び出しによって最後に返された要素です。 |
例
以下に、IteratorとListIteratorの両方を示す例を示します。 ArrayListオブジェクトを使用しますが、一般的な原則はあらゆるタイプのコレクションに適用されます。
もちろん、ListIteratorは、Listインターフェイスを実装するコレクションでのみ使用できます。
これは、次の結果を生成します-