日期:2014-05-20  浏览次数:20764 次

关于List的问题,一个List装了若干ObjectX,我想remove一个ObjectX.c=-1的对象,请问如何做?
关于List的问题,一个List装了若干ObjectX,我想remove一个ObjectX.c1=-1的对象,请问如何做?

事情是这样的,有一个List,hold了很多个对象比如ObjectX,ObjectX有很多个属性比如c1,c2,c3....,现在我只想把ObjectX.c1=-1的对象从List中remove掉,请问如何做?

求最简单的方式!

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



------解决方案--------------------
ObjectX重写equals方法,判断c1的值相等就相等,然后就可以直接用list.remove(obj)了
------解决方案--------------------
如果只是判断删除用map比较好,把这个属性作为key,然后删除就好了,否则就只有重写equals方法判断要比较的属性了是否相等,不过得考虑到可对其他需要比较的地方的影响。
------解决方案--------------------
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);
------解决方案--------------------
用get方法+size()方法遍历
for(int i=0; i <list.size(); ++i){
ObjextX ox = (ObjextX)list.get(ox);
//...
}