一个简单的算法关于list

来源:互联网 发布:淘宝联盟 淘口令 编辑:程序博客网 时间:2024/05/16 03:17

         毕业之后,继续走了一年了的弯路,这是一段必不可少的经历,我走弯路的原因是思想不成熟,时间的浪费有助于消除我的无知,从这个意义上说,这弯路不算弯,但毕竟浪费了一年的光阴。

       先前写的list先判断条件,如果符合条件就加到list中,没有遇到过困难。

      这几天看一些多线程的小游戏,比如很多对象开始已经存在于list中,一段时间之后他们就不符合条件了,就需要把他们从list中清除出去,

1.写的时候就写了如下代码:

    for(Item temp:list) {   if(temp.isDead){   list.remove(temp);}}

结果报了一个错误,遍历过程中不能增减列表list

2.换一种写法呗

for(int i=0;i<list.size();i++){ Item temp=list.get(i);  if(temp.isDead)  list.remove(temp);}

回头一想不对,list的长度是不断变化的,这样写了逻辑有问题。

3最后想来想去,写了一个简单算法解决了这个问题

int cur=0;

while(cur<list.size()){

Item temp=list.get(cur);

if(temp.isDead){

list.remove(temp);

}

else{

cur++;

}

}

问题终于解决。O(∩_∩)O~

原创粉丝点击