http://community.csdn.net/Expert/topic/4254/4254562.xml?temp=.2340204跟这个类似

解决方案 »

  1.   

    w++放在前面就肯定不对,w应该从零开始
    还有,remove使用的时候一定要小心,因为arraylist的size是变化的
    所以删除一个以后,要将i重新置为零
    Iterator allIt = allUrlList.iterator();
    int w=0;
    while(allIt.hasNext())
    {
        Chargeofurl chargeofurl = (Chargeofurl)allIt.next();
        for(int i=0;i<arr.size();i++)
        {
           if(chargeofurl.getid().intValue() != 
              Integer.parseInt(arr.get(i).toString  ())){
           allUrlList.remove(w);
               i=0;
           }
         }
     w++;
    }
      

  2.   

    把allUrlList.remove(w);
    改成
    allIt.remove()
      

  3.   

    我就不明白楼主要那个w有什么用?难道这么写不行????Iterator allIt = allUrlList.iterator();
    while(allIt.hasNext())
    {
        Chargeofurl chargeofurl = (Chargeofurl)allIt.next();
        for(int i=0;i<arr.size();i++)
        {
           if(chargeofurl.getid().intValue() != 
              Integer.parseInt(arr.get(i).toString  ())){
           allUrlList.remove(i);
           }
         }
    }
      

  4.   

    这么着不行吗Iterator allIt = allUrlList.iterator();
    while(allIt.hasNext())
    {
        Chargeofurl chargeofurl = (Chargeofurl)allIt.next();
        for(int i=0;i<arr.size();i++)
        {
           if(chargeofurl.getid().intValue() != 
              Integer.parseInt(arr.get(i).toString  ())){
           allUrlList.remove();
           }
         }
    }
      

  5.   

    这样你试试Iterator allIt = allUrlList.iterator();
    while(allIt.hasNext())
    {
        Chargeofurl chargeofurl = (Chargeofurl)allIt.next();
        for(int i=0;i<arr.size();i++)
        {
           if(chargeofurl.getid().intValue() != 
              Integer.parseInt(arr.get(i).toString  ())){
              allIt.remove();
           }
         }
    }
      

  6.   

    呵呵,List就对应《数据结构》中的List一章
    如List和Map,不要直接删List最好倒着删,即从size()-1 ->0开始