跳到主要内容

写一段代码在遍历 ArrayList 时移除一个元素?

参考答案:

在遍历 ArrayList 时,如果你尝试直接删除元素,可能会遇到 ConcurrentModificationException。为了避免这个问题,你可以使用迭代器 (Iterator) 来遍历并删除元素。

以下是一个示例代码,演示如何在遍历 ArrayList 时删除一个元素:

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

public class ArrayListExample {
    public static void main(String[] args) {
        // 创建一个 ArrayList
        ArrayList<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");
        list.add("Date");

        // 使用迭代器遍历 ArrayList
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();

            // 检查是否要删除元素,例如:删除 "Banana"
            if ("Banana".equals(element)) {
                iterator.remove();
            }
        }

        // 打印修改后的 ArrayList
        System.out.println(list);
    }
}

在这个示例中,我们创建了一个包含四个元素的 ArrayList。然后,我们使用 iterator() 方法获取一个迭代器,并使用 while 循环遍历 ArrayList。在循环中,我们检查当前元素是否是 "Banana",如果是,则使用迭代器的 remove() 方法删除该元素。最后,我们打印修改后的 ArrayList,它不再包含 "Banana"。