java forEach中怎么使用remove
时间: 2023-10-11 11:13:10 浏览: 221
在Java的forEach循环中,你不能直接使用`remove`方法来删除集合中的元素。这是因为`forEach`循环是基于迭代器的,而在迭代过程中直接调用`remove`方法会导致`ConcurrentModificationException`并发修改异常。
如果你需要在遍历过程中删除集合中的元素,可以使用迭代器的`remove`方法。以下是一个示例代码,演示如何在遍历List时使用迭代器的`remove`方法删除元素:
```java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 创建一个List
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
// 获取List的迭代器
Iterator<String> iterator = list.iterator();
// 遍历List并删除元素
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("Banana")) {
iterator.remove(); // 使用迭代器的remove方法删除元素
}
}
// 打印删除后的List
System.out.println(list); // 输出: [Apple, Orange]
}
}
```
在上述代码中,我们通过调用`iterator()`方法获取List的迭代器对象。然后,在遍历过程中使用`next()`方法获取下一个元素,并使用`remove()`方法删除指定的元素。注意,这里我们使用了迭代器的`remove()`方法,而不是List的`remove()`方法。
这样就可以在遍历List的过程中删除元素了。希望对你有所帮助!如果你还有其他问题,请随时提问。
阅读全文