java类自动比对字段值不一样_Java对比两个list并找出其中不同的值(list里面的具体类单独抽出不同字段)...

本文介绍如何在Java中对比两个List中的对象,找出字段值不同的部分。通过排序、转换为JSON字符串以及使用HashMap记录差异,最终提取出不同字段的信息。示例代码展示了详细的对比过程。
摘要由CSDN通过智能技术生成

今天凯哥交给我一个任务,在报警模版中对比新旧两个数据,找出其中不同的部分,之前是把不同的数据转string做了对比,并没有对list中的对象做判断,修改完之后记录一下。

list做对比,如果 list 里面的数据是乱序的,需要对list排序。使用 Collections.sort()就可以了。但是list里面的对象不继承于comparable接口的话,要自己处理一下。方法就是实现接口,重写comparTo,我比较懒,就直接使用lambada的stream转string了。

准备工作做完,接下来就要开始对比了,我的第一个版本就是使用list.removeIf( lambada... ),用另一个list做判断是否包含,并remove,最后合并。相当简单粗暴。上代码。

ArrayList lst1 = new ArrayList<>(Arrays.asList("a","b","e"));

ArrayList lst2 = new ArrayList<>(Arrays.asList("b","e","a"));

Collections.sort(lst1);

Collections.sort(lst2);

if (lst1.equals(lst2)){

}else{

lst1.removeAll(lst2);

lst1.addAll(lst2);

System.out.println(Arrays.toString(lst1.toArray()));

}

后来要对list中的数据单独抽出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值