列表java不在循环上工作

列表java不在循环上工作,java,oop,for-loop,Java,Oop,For Loop,我有一个项目列表,在一个for循环中我试图比较这个列表,但该列表使BoundsException的数组 在for循环外列表有4个项目(0,1,2,3),但在for中只有3个项目(0,1,2),当我尝试访问最后一个项目时,会引发异常 List<Relatorio> relatorios = new RelatorioDao().listaTudoEmpresa(userWeb.logado); for(int i = 0; i < relatorios.size(

我有一个项目列表,在一个
for循环中
我试图比较这个列表,但该列表使
BoundsException的数组

for循环外
列表有4个项目(0,1,2,3),但在for中只有3个项目(0,1,2),当我尝试访问最后一个项目时,会引发异常

List<Relatorio> relatorios = new RelatorioDao().listaTudoEmpresa(userWeb.logado);
        for(int i = 0; i < relatorios.size(); i++){
            if(!contem(relatorios.get(i))){
                relatorios.remove(i);
            }
        }
List relatorios=new RelatorioDao().listaTudoEmpresa(userWeb.logado);
对于(int i=0;i
这是因为当删除元素时,列表的大小会变小,从而缩短循环

如果要在迭代过程中删除元素,请使用专用列表迭代器,此操作是安全的:

    Iterator<Relatorio> it = relatorios.iterator();
    while (it.hasNext())
        if (...) {
            it.remove();
        }
    }
Iterator it=relatorios.Iterator();
while(it.hasNext())
如果(…){
it.remove();
}
}

这是因为当删除元素时,列表的大小会变小,从而缩短循环

如果要在迭代过程中删除元素,请使用专用列表迭代器,此操作是安全的:

    Iterator<Relatorio> it = relatorios.iterator();
    while (it.hasNext())
        if (...) {
            it.remove();
        }
    }
Iterator it=relatorios.Iterator();
while(it.hasNext())
如果(…){
it.remove();
}
}

您不应该从非迭代器循环中删除项

考虑这样做

for( Iterator<Realtorio> iter = realtorios.iterator( ); iter.hasNext( ); )
{
   Relatorio cur = iter.next( );

   if(!contem(cur)){
      iter.remove( );
   }
}
for(Iterator iter=realtorios.Iterator();iter.hasNext();) { Relatorio cur=iter.next(); 如果(!contem(cur)){ iter.remove(); } }
您不应该从非迭代器循环中删除项

考虑这样做

for( Iterator<Realtorio> iter = realtorios.iterator( ); iter.hasNext( ); )
{
   Relatorio cur = iter.next( );

   if(!contem(cur)){
      iter.remove( );
   }
}
for(Iterator iter=realtorios.Iterator();iter.hasNext();) { Relatorio cur=iter.next(); 如果(!contem(cur)){ iter.remove(); } }
在迭代列表时,不能对列表中的项目执行删除操作。必须使用迭代器上的remove来执行此操作。

.

您不能对列表中的项目执行删除操作,因为您正在对其进行迭代。必须使用迭代器上的remove来执行此操作。

.

通过此处的异常堆栈跟踪!这里可能存在超过异常堆栈跟踪的重复!可能重复的