很多都是比较List<String>的,和自身业务不符,jdk1.8 新特性强大的Stream API ,具体是什么方法,什么作用自行百度,复制粘贴可以解决问题就OK+
复制粘贴即可用,简单修改AvoidHouse 对象类型、getHoseCode 获取比较的键值就可以了。
/**
* 互相比较两个List 我的业务需要,根据自己需要进行修改
* @param oldList 原有数据
* @param newList 新数据
*原数据减新数据为消除
*新数据减上一期为新增
* @return 本次比较新增的数量和消除的数量
*/
private JSONObject com(List<AvoidHouse> oldList,List<AvoidHouse> newList){
JSONObject data = new JSONObject();
// 分别拿到原有数据和新数据List 中的比较键值 我得是hoseCode 根据code对比两个List 数据中是否互相包含
List<String> avoidHouseOldListCode = oldList.stream().map(AvoidHouse::getHoseCode).collect(Collectors.toList());
List<String> avoidHouseNewListCode = newList.stream().map(AvoidHouse::getHoseCode).collect(Collectors.toList());
List<AvoidHouse> addHouse = newList.stream().filter(house -> !avoidHouseOldListCode.contains(house.getHoseCode())).collect(Collectors.toList());
List<AvoidHouse> remHouse = oldList.stream().filter(house -> !avoidHouseNewListCode.contains(house.getHoseCode())).collect(Collectors.toList());
data.put("addnum",addHouse.size());
data.put("remnum",remHouse.size());
return data;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)