两个List集合 合并问题

有两个集合a和b
a和b的数据不完全相同,但是有部分相同,
如何把ab不相同的部分放进c集合,把相同的部分按a的标准放到c集合中
List c = new ArrayList();
List a = nCew ArrayList();
//存入数据
List b = new ArrayList();
//存入数据
user实体有name和id两个属性
就是a和b集合 id不同的都放入到c集合中,id相同的按a的标准放到c中

创建一个hashmap(key不可重复)
先将b按照id作为key插入,然后将a按照id作为key插入;
a中id与b中id一样的,会覆盖之前的数据;
最后得到的hashmap转为list即可

需要结果C中没有相同的元素的话可以用Set

List b = new ArrayList();
    b.add(1);
    b.add(2);
    List a = new ArrayList();
    a.add(2);
    a.add(3);
    Set set = new HashSet(b);
    set.addAll(a);
    List c = new ArrayList(set);

    //a或b 集合要保证元素不重复
    System.out.println(c.toString());
    //结果 [1, 2, 3]

public static void main(String[] args) {
List list = new ArrayList<>();
list.add("张三");
list.add("张三");
list.add("李四");

    List<String> list2 = new ArrayList<>();
    list2.add("张三");
    list2.add("王五");

    Set<String> set = new HashSet<>(list);
    set.addAll(list2);

    System.out.println(set.toString());
}

    //结果  [李四, 张三, 王五]

新建HashSet

重写User中的hashCode方法
public int hashcode(){
return this.id;
}

重写User中的equals方法
public boolean equals(Object obj){
return true;
}

然后先将你的a集和全部add进HashSet中,然后add集和b的数据进set,最后把set转为list,就是你要的c

拿着迭代的逻辑就是 重写 user的equers 和 hashcode 方法 如何在循环判断对象是否相等 在去处理。。。。

重写user的equers,即俩个对象hashcode或者id一致

将两个list集合里面的内容导入进hashSet