JavaでArrayListをイテレーションしながら要素を削除する方法


  1. Iteratorを使用する方法: ArrayListをイテレーションするためには、Iteratorインターフェースを使用します。Iteratorを使用すると、要素を安全に削除できます。以下は、Iteratorを使用してArrayListから要素を削除する例です。

    import java.util.ArrayList;
    import java.util.Iterator;
    public class Main {
       public static void main(String[] args) {
           ArrayList<String> list = new ArrayList<>();
           list.add("要素1");
           list.add("要素2");
           list.add("要素3");
           list.add("要素4");
           list.add("要素5");
           Iterator<String> iterator = list.iterator();
           while (iterator.hasNext()) {
               String element = iterator.next();
               if (element.equals("要素3")) {
                   iterator.remove();
               }
           }
           System.out.println(list);
       }
    }

    上記の例では、Iteratorを使用して要素をイテレーションしながら、"要素3"を見つけた場合に削除しています。

  2. forループを使用する方法: もう1つの方法は、forループを使用してArrayListをイテレーションしながら要素を削除する方法です。以下はその例です。

    import java.util.ArrayList;
    public class Main {
       public static void main(String[] args) {
           ArrayList<String> list = new ArrayList<>();
           list.add("要素1");
           list.add("要素2");
           list.add("要素3");
           list.add("要素4");
           list.add("要素5");
           for (int i = 0; i < list.size(); i++) {
               String element = list.get(i);
               if (element.equals("要素3")) {
                   list.remove(i);
                   i--; // インデックスを調整するためにデクリメントします
               }
           }
           System.out.println(list);
       }
    }

    上記の例では、forループを使用して要素をイテレーションしながら、"要素3"を見つけた場合に削除しています。削除後は、インデックスを調整するためにi--を行っています。

このように、JavaでArrayListをイテレーションしながら要素を削除する方法には、Iteratorを使用する方法とforループを使用する方法があります。どちらの方法でも要素を安全に削除できますので、状況に合わせて適切な方法を選択してください。