您的位置:首页 > 编程语言 > Java开发

Java遍历容器注意问题

2016-04-22 21:53 246 查看
  今天写了个小程序,要遍历LinkedList容器,遍历过程会进行删除操作,allJobs是一个LinkedList,代码:

for(int i=0; i<allJobs.size(); i++){
Job j = allJobs.get(i);
if(j.requstTime <= job.duration +job.startTime){
readyJobs.add(j);
allJobs.remove(j);
i--;
}else{
break;
}
}


进行删除之后再遍历就会出现错误,比如allJobs是[1,2,3,4],i=1时进行删除操作,2被删掉,allJobs变成[1,3,4],i++之后就会直接遍历4,忽略掉3。所以每次删除之后要做一下i--的操作。

  换成foreach语法就不会出问题

for(Job j: allJobs){
if(j.requstTime <= job.duration +job.startTime){
readyJobs.add(j);
allJobs.remove(j);

}else{
break;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: