2
package com.test;

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

public class TestList {

    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();
        list.add("One");
        list.add("Two");
        list.add("Three");
        list.add("Four");

        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            String str = it.next();
            System.out.print(str + " ");
            if (str.equals("Three")) {
                list.remove("Three");
            }
        }
        System.out.println();
        System.out.println("List are :" + list);
    }
}

出力: One Two Three List are :[One, Two, Four]

ConcurrentModificationException をスローしないのはなぜですか?

ただし、次のシナリオでは ConcurrentModificationException がスローされます。

if (str.equals("One")) {
                list.remove("One");
        }

        if (str.equals("Two")) {
                list.remove("Two");
        }

        if (str.equals("Four")) {
                list.remove("Four");
        }
4

0 に答える 0