【发布时间】:2017-12-15 09:46:30
【问题描述】:
我有以下代码:
private void deletePersonFromList(String dni, ObservableList<Persona> persons){
for(Persona p : persons){
if(p.getChildren().isEmpty()) {
if(p.getDNI().equals(dni)) {
persons.remove(p);
}
} else deletePersonFromList(dni, p.getChildren());
}
}
我想要做的是删除列表中的一个元素,如果它匹配一个条件,这是递归完成的,因为所述元素本身可以包含一个元素列表。
这样做会引发 java.util.ConcurrentModificationException,因为正在迭代列表。什么方法可以帮助我做到这一点?
这是我在完成学校作业时遇到的一个问题,所以请不要只用代码解决它来回答(如果可能的话),我想了解在这种情况下我应该怎么做以及为什么。
提前致谢!
【问题讨论】:
-
这里不是问软件问题,请联系电报支持者
-
这不是软件问题,而是关于 API,而不是软件本身。
标签: java list recursion java.util.concurrent