问题遇到的现象和发生背景
想要两个list合并成同一个list,然后再当前list中相同id属性的对象进行合并,不同的也要保留
用代码块功能插入代码,请勿粘贴截图
List<Info> list1 = new ArrayList<>();
Info info1 = new Info();
info1.setId(1);
info1.setCount1(100);
Info info2 = new Info();
info2.setId(2);
info2.setCount1(200);
Info info3 = new Info();
info3.setId(3);
info3.setCount1(300);
list1.add(info1);
list1.add(info2);
list1.add(info3);
List<Info> list2 = new ArrayList<>();
Info info4 = new Info();
info4.setId(1);
info4.setCount2(100);
Info info5 = new Info();
info5.setId(2);
info5.setCount2(200);
Info info6 = new Info();
info6.setId(4);
info6.setCount2(400);
list2.add(info4);
list2.add(info5);
list2.add(info6);
@Data
public class Info{
private Integer id;
private BigDecimal count1;
private BigDecimal count2;
}
我的解答思路和尝试过的方法
我尝试根据id合并为同一个list,但是不同id的无法保留下来
例 处理完的list:[Info(id=1, count1=100, count2=100), Info(id=2, count1=200, count2=200)]
之后在根据处理完的list跟原list1,list2取差集
我想要达到的结果
最好合并后都进行保留
[Info(id=1, count1=100, count2=100), Info(id=2, count1=200, count2=200), Info(id=3, count1=300, count2=null), Info(id=4, count1=null, count2=400)]