Javaのイテレーターを使用して要素を削除する方法は何ですか?

Javaの反復子を使用して要素を削除するには、次の手順に従います。

  1. 最初、イテレーターオブジェクトを作成し、それを操作したいコレクションと関連付けます。たとえば、ArrayListコレクションを操作する場合、次のコードを使用してイテレーターを作成できます:
  2. ArrayListのイテレーターを作成する:
    Iterator iterator = arrayList.iterator();
  3. Whileループを使用してコレクション内の要素を反復処理します。ループ内で、イテレータのhasNext()メソッドを使用して次の要素がまだあるかどうかを確認し、next()メソッドを使用して現在の要素を取得できます。例えば:
  4. iterator.hasNext()の間、
    String element = iterator.next();
    // ここで削除操作を行います。
  5. ループ中で削除操作を行う。remove()メソッドを使用して現在の要素を削除できる。例えば:
  6. 次のように言い換えることができます:イテレーターを削除する。

例のコードは以下の通りです:

import java.util.ArrayList;
import java.util.Iterator;

public class IteratorExample {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("元素1");
        arrayList.add("元素2");
        arrayList.add("元素3");

        Iterator<String> iterator = arrayList.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            if (element.equals("元素2")) {
                iterator.remove();
            }
        }

        System.out.println(arrayList);  // 输出:[元素1, 元素3]
    }
}

注意:要删除元素时,请使用迭代器的remove()方法,而非直接使用集合的remove()方法。直接使用remove()方法会导致ConcurrentModificationException异常。

bannerAds