微信拓客的最新方法,搜索引擎优化要考虑哪些方面?,网站错误列表,网站建设需不需要编程首先
在 Java 中#xff0c;当你在循环中遍历集合时#xff0c;直接删除元素可能会引发 ConcurrentModificationException。为了安全地删除元素#xff0c;推荐使用 Iterator 来进行删除操作。
以下是使用 Iterator 删除元素的常见模式#xff1a;
import java.util.Arr…首先
在 Java 中当你在循环中遍历集合时直接删除元素可能会引发 ConcurrentModificationException。为了安全地删除元素推荐使用 Iterator 来进行删除操作。
以下是使用 Iterator 删除元素的常见模式
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Main {public static void main(String[] args) {ListInteger list new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);// 使用 Iterator 安全删除元素IteratorInteger iterator list.iterator();while (iterator.hasNext()) {Integer value iterator.next();if (value % 2 0) { // 删除偶数元素iterator.remove();}}System.out.println(list); // 输出: [1, 3]}
}关键点
使用 Iterator 的 remove() 方法删除元素而不是直接使用 List 的 remove() 方法。在 for-each 循环中无法使用 Iterator.remove()必须显式地使用 Iterator 进行遍历和删除操作。
Java 8 的 Stream API 方案
你也可以使用 Stream API 来过滤出你需要的元素间接实现删除效果
list list.stream().filter(value - value % 2 ! 0) // 保留奇数元素.collect(Collectors.toList());System.out.println(list); // 输出: [1, 3]这种方法不会在遍历中直接删除元素而是创建一个新的过滤后的集合。