要避免集合被修改而无法执行枚举操作,可以使用以下解决方法:
List list = new ArrayList<>();
list.add("a");
list.add("b");
List immutableList = Collections.unmodifiableList(list);
// 尝试修改不可变集合将抛出UnsupportedOperationException异常
immutableList.add("c"); // 抛出异常
List list = new ArrayList<>();
list.add("a");
list.add("b");
List copyList = new ArrayList<>(list);
// 在枚举操作之前,对副本进行操作
copyList.add("c");
// 对原始集合进行枚举操作
for (String element : list) {
System.out.println(element);
}
List list = new CopyOnWriteArrayList<>();
list.add("a");
list.add("b");
// 在枚举操作期间,即使有其他线程对集合进行修改,也不会抛出ConcurrentModificationException异常
for (String element : list) {
System.out.println(element);
}
通过使用不可变集合、创建集合的拷贝或使用并发集合,可以避免集合被修改而无法执行枚举操作的问题。选择哪种解决方法取决于具体的使用场景和需求。
下一篇:避免几何形状交叉”