可能你的SysOptRight类的equals()和hashCode()方法有问题。

解决方案 »

  1.   


    是的用for(int i=c.size()-1;i>=0;i--){
    remove(c.get(i));
    }另外,如果改成上面的写法还是不对,请检查equals方法,equals方法改写的不对也会导致你说的问题
      

  2.   

    你可再做一个List。
    把要删的元素都放在里面。
    循环结束以后再optUserReadRightList.removeAll(list);
    我也觉得你的hashCode方法和equals方法有问题。
      

  3.   

    SysOptRight类没有equals()和hashCode()方法,需要再生成吗
      

  4.   

    在使用迭代器的时候,不要remove,这样迭代器会失效,故会产生不正确的结果。