首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求高效率算法:ArrayList中删除另外一个ArrayList中存在的对象

2012-10-15 
求高效算法:ArrayList中删除另外一个ArrayList中存在的对象。如题,有两个List:Java codeListString list1

求高效算法:ArrayList中删除另外一个ArrayList中存在的对象。
如题,有两个List:

Java code
List<String> list1 = new ArrayList<String>();        List<String> list2 = new ArrayList<String>();                list1.add("1");        list1.add("2");        list1.add("3");        list1.add("4");        list1.add("5");        list2.add("1");        list2.add("3");        list2.add("5");

现在要将list1中的1,3,5删除,要求效率越高越好。

我自己写了个,感觉效率很差!
Java code
public static void main(String[] args) {        List<String> list1 = new ArrayList<String>();        List<String> list2 = new ArrayList<String>();                list1.add("1");        list1.add("2");        list1.add("3");        list1.add("4");        list1.add("5");                list2.add("1");        list2.add("3");        list2.add("5");                boolean restart = false;        int i =0;        out:        for( ;i<list1.size();){            int j=0;            for(;j<list2.size();j++){                if(list1.get(i).equals(list2.get(j))){                    list1.remove(list1.get(i));                    restart = true;                    break;                }            }            if(j == list2.size()){                restart = false;            }            if(restart){                i = 0;                continue out;            }else{                i++;            }        }    }


[解决办法]
重写一下Person类的equals方法,改成当和其他类比较时,只要name相同就返回true.
 再同样的removeAll应该就可以了... LZ不妨试试.
[解决办法]
探讨

8L能给个列子吗

热点排行