0

アイテムのfor loopリストがあり、このリストを比較しようとしていますが、リストはArrayOutOfBoundsException.

for loopリストには 4 つの項目 (0,1,2,3) がありますが、最後の項目にアクセスしようとすると例外が発生します。

List<Relatorio> relatorios = new RelatorioDao().listaTudoEmpresa(userWeb.logado);
        for(int i = 0; i < relatorios.size(); i++){
            if(!contem(relatorios.get(i))){
                relatorios.remove(i);
            }
        }
4

3 に答える 3

2

これは、要素を削除すると、リストのサイズが小さくなり、ループが短くなるためです。

反復中に要素を削除する場合は、専用のリスト反復子を使用します。この操作では安全です。

    Iterator<Relatorio> it = relatorios.iterator();
    while (it.hasNext())
        if (...) {
            it.remove();
        }
    }
于 2013-04-01T17:00:26.833 に答える