【发布时间】:2014-12-24 09:54:34
【问题描述】:
我需要将一些对象添加到我在 for 循环中使用的 ArrayList。这是代码:
List<Bulto> bultosHijos = bultoDAO.findChilds(idBulto);
List<Bulto> bultosMasProfundos = new ArrayList();
for (Bulto bulto : bultosHijos) {
List<Bulto> bultosNietos = bultoDAO.findChilds(bulto.getIdBulto());
if (!bultosNietos.isEmpty()) {
bultosHijos.addAll(bultosHijos.size(), bultosNietos);
} else {
bultosMasProfundos.add(bulto);
}
}
这向我抛出了“当前修改异常”。我尝试更改返回我的 DAO 的类型,但我不能。我怎样才能避免这个错误并做到这一点?
非常感谢
编辑 1:
感谢您的所有回复!我现在正在使用 ListIterator 和下面的代码,效果很好!
但是如果我不使用listIterator.previous(),while 循环会立即退出,我不希望这样。好吗?
List<Bulto> bultosHijos = bultoDAO.findChilds(idBulto);
List<Bulto> bultosMasProfundos = new ArrayList();
ListIterator<Bulto> listIterator = bultosHijos.listIterator();
while (listIterator.hasNext()) {
Bulto bulto = listIterator.next();
List<Bulto> bultosNietos = bultoDAO.findChilds(bulto.getIdBulto());
if (!bultosNietos.isEmpty()) {
for (Bulto bultoNieto : bultosNietos) {
listIterator.add(bultoNieto);
listIterator.previous();
}
} else {
bultosMasProfundos.add(bulto);
}
}
【问题讨论】:
-
可以使用
ListIterator进行迭代。 stackoverflow.com/questions/7409740/…
标签: java spring hibernate loops arraylist