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

在遍历ArrayList时,直接使用remove()方法会导致ConcurrentModificationException异常。为了安全地移除元素,可以使用迭代器(Iterator)来进行遍历并移除元素。以下是一个示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.ArrayList;
import java.util.Iterator;

public class ArrayListRemovalExample {
public static void main(String[] args) {
// 创建ArrayList并添加一些元素
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
list.add("Grape");

// 使用迭代器遍历并移除元素
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("Orange")) {
iterator.remove(); // 使用迭代器的remove()方法移除元素
}
}

// 打印移除后的ArrayList
for (String element : list) {
System.out.println(element);
}
}
}

在上述代码中,我们首先创建了一个ArrayList,并添加了一些元素。然后使用迭代器进行遍历,如果找到要移除的元素(在这个例子中是”Orange”),就使用迭代器的remove()方法将其从ArrayList中移除。最后,我们打印移除后的ArrayList,输出结果将不包含被移除的元素。请注意,在使用迭代器的过程中,我们使用的是迭代器的remove()方法而不是ArrayList的remove()方法,这样可以避免ConcurrentModificationException异常的发生。