代码是葡萄牙语,我很抱歉。
我在这里读到了另一个问题,因为我使用的是progSelecionada.remove()
,因为我正在使用iterator.remove()
,因此我将其更改为final List<Programacao> programacoesASeremRemovidas = new ArrayList<Programacao>(
this.programacoesDaEscala.size());
programacoesASeremRemovidas.addAll(this.programacoesDaEscala);
final List<Programacao> programacoesEmpresas = Cache.getInstance().getProgramacoes(
this.empresasSelecionadas);
for (final Iterator<Programacao> iterator = programacoesEmpresas.iterator(); iterator.hasNext();)
{
final Programacao progSelecionada = iterator.next();
for (final Programacao progEmpresa : programacoesEmpresas)
{
if (progSelecionada.getId() == progEmpresa.getId())
{
iterator.remove();
}
}
}
,但错误仍然存在。
有人可以向我解释我的错误吗?
{{1}}
答案 0 :(得分:2)
你可能有一个错误,因为你的循环都在同一个列表programacoesEmpresas
上迭代,所以即使你没有得到异常,你也只需从列表中删除所有对象(假设你没有将字符串与==
进行比较 - 我不知道getId()
的类型是什么。
使用增强的for循环(在内部循环中执行此操作)迭代时,您无法修改该列表。
for(final Iterator iterator = programacoesEmpresas .iterator(); iterator.hasNext();)
和(最终Programacao progEmpresa: programacoesEmpresas )