2 dobyi Dobyi 于 2015.05.25 14:08 提问

取出两个List对象不相同的元素
 private List getDiff(List list1,List list2){
        List list = new ArrayList();
        //怎么写啊

        return list;
    }

怎么取出这两个List里面不同的元素,并且返回到一个新的List中?

5个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.05.25 14:40
 HashSet h1 = new HashSet(list1); 
        h1.addAll(list2);
        List list = new ArrayList();
        list.addAll(h1);
danielinbiti
danielinbiti 回复Dobyi: 比如ist1.add("a"); list1.add("b"); list2.add("a"); list2.add("c");,看看你list里面放的是什么对象
2 年多之前 回复
Dobyi
Dobyi 我用了这个方法,list1里面9条数据,list2里面11条数据,打印出来list有20条。没有过滤掉重复的啊。
2 年多之前 回复
tongyi55555
tongyi55555   2015.05.25 14:52
 private List getDiff(List list1,List list2){
        List listAll = new ArrayList();
        List resultList= new ArrayList();
        listAll.addAll(list1);
        listAll.addAll(list2);
        for (int i = 0; i < listAll.size(); i++) {
            if(list1.contains(listAll.get(i))&&list2.contains(listAll.get(i))){
                continue;
            }else{
                resultList.add(listAll.get(i));
            }
        }
        return resultList;
}
qq_27233507
qq_27233507   2015.05.25 15:07

List a = new ArrayList();
a.add("a");
a.add("b");
a.add("c");
a.add("d");
List b = new ArrayList();
b.add("a");
b.add("e");
b.add("t");
List c = new ArrayList();

    for(int i=0;i<a.size();i++){
        for(int j=0;j<b.size();j++){
            if(a.get(i)==b.get(j)){
                break;
            }else{
                c.add(a.get(i));
                break;
            }
        }
    }
    for(int i=0;i<b.size();i++){
        for(int j=0;j<a.size();j++){
            if(b.get(i)==a.get(j)){
                break;
            }else{
                c.add(b.get(i));
                break;
            }
        }
    }
    System.out.println(c.toString()+"--------");
            方法笨但是绝对正确。。。。
z_am01o4d
z_am01o4d   2015.05.25 16:34

list.addAll(list1);
list.addAll(list2);
list1.retainAll(list2);
list.removeAll(list1);
用到的这三个方法都是java jak api里面的,你可以去看看api。

tianyang2008
tianyang2008   2015.05.26 14:04

你是要玩算法,还是要怎么弄,玩算法。
先分别排序,然后归并排序。

如果应用,弄个map。。如上

Csdn user default icon
上传中...
上传图片
插入图片