Java遍历容器注意问题

来源:互联网 发布:三星note8画画软件 编辑:程序博客网 时间:2024/06/08 11:02

  今天写了个小程序,要遍历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;}}


0 0
原创粉丝点击