for(int n=0;n<doctorWatchList.size();n++){
ZBJLBEO zb=(ZBJLBEO)doctorWatchList.get(n);
ZBJLBEO zb2=(ZBJLBEO)doctorWatchList.get(n+1);
if(zb.getCWYNAME().equals(zb2.getCWYNAME())&&zb.getHEALTH_REPORT().equals(zb2.getHEALTH_REPORT())){
doctorWatchList.remove(n);
}
}在ACTION里执行两三遍就会出错????请问怎么解决??
ZBJLBEO zb=(ZBJLBEO)doctorWatchList.get(n);
ZBJLBEO zb2=(ZBJLBEO)doctorWatchList.get(n+1);
if(zb.getCWYNAME().equals(zb2.getCWYNAME())&&zb.getHEALTH_REPORT().equals(zb2.getHEALTH_REPORT())){
doctorWatchList.remove(n);
}
}在ACTION里执行两三遍就会出错????请问怎么解决??
当你走到最后一个得时候,你的(n+1)就超过了list的长度了
到最后一条肯定会报错
Iterator it = doctorWatchList.iterator();
for(Iterator it=doctorWatchList.iterator();it.next();)
System.out.println("nnn:"+n+" size:"+doctorWatchList.size());
ZBJLBEO zb=(ZBJLBEO)doctorWatchList.get(n);
if(n==doctorWatchList.size()){break;}
ZBJLBEO zb2=(ZBJLBEO)doctorWatchList.get(n+1);
System.out.println("n:"+n+"size:"+doctorWatchList.size());
if(zb.getCWYNAME().equals(zb2.getCWYNAME())&&zb.getHEALTH_REPORT().equals(zb2.getHEALTH_REPORT())){
doctorWatchList.remove(n);
n--;
}
}输出:
n:0 size:7
n:0 size:6
n:0 size:5
n:0 size:4
n:0 size:3
n:0 size:2
n:0 size:1才明白怎么回事,呵呵,谢谢大家了,笨了。