java 把两个对象集合相同的id数据不同值合并
时间: 2023-03-28 15:02:49 浏览: 188
java 利用反射将同一种对象,不同属性值,合并为一个新的对象
可以使用 Java 8 中的 Stream API 和 Collectors 工具类来实现。首先,将两个对象集合合并成一个集合,然后使用 groupingBy 方法按照 id 进行分组,最后使用 reducing 方法将相同 id 的数据进行合并。具体实现可以参考以下代码:
List<Object> list1 = new ArrayList<>();
List<Object> list2 = new ArrayList<>();
// 添加数据到 list1 和 list2 中
List<Object> mergedList = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toList());
Map<Integer, Object> resultMap = mergedList.stream()
.collect(Collectors.groupingBy(Object::getId,
Collectors.reducing((o1, o2) -> {
o1.setValue(o1.getValue() + o2.getValue());
return o1;
})));
List<Object> resultList = new ArrayList<>(resultMap.values());
阅读全文