关于List的问题,一个List装了若干ObjectX,我想remove一个ObjectX.c1=-1的对象,请问如何做?事情是这样的,有一个List,hold了很多个对象比如ObjectX,ObjectX有很多个属性比如c1,c2,c3....,现在我只想把ObjectX.c1=-1的对象从List中remove掉,请问如何做?求最简单的方式!

解决方案 »

  1.   

    c1的指会相等吗?可以考虑用map,用list的话
    效率可能会很低。至少要迭代list吧。
      

  2.   

    ObjectX重写equals方法,判断c1的值相等就相等,然后就可以直接用list.remove(obj)了
      

  3.   

    如果只是判断删除用map比较好,把这个属性作为key,然后删除就好了,否则就只有重写equals方法判断要比较的属性了是否相等,不过得考虑到可对其他需要比较的地方的影响。
      

  4.   

    List list = new ArrayList();
    List removeList = new ArrayList();
    for (Iterator iter = list.iterator(); iter.hasNext();) {
    ObjectX element = (ObjectX) iter.next();
    if(element.getC1() == -1){
    removeList.add(element);
    }
    }
    list.removeAll(removeList);
      

  5.   

    if(element.getC1() == -1) 改成if(null != element && element.getC1() == -1)
      

  6.   

    如果不改写ObjectX的equals方法,如果不采用iterator方式,请问还有别的方法吗?因为这两种方式在我这里情况不允许,或者不适合
      

  7.   

    用get方法+size()方法遍历
    for(int i=0; i<list.size(); ++i){
      ObjextX ox = (ObjextX)list.get(ox);
      //...
    }
      

  8.   

    有主键没有,可以构造Map呀。