java8有一个集合集合中保存的是成员变量key和value的对象stream替换list1与list2相同key的value
可以使用Java 8的Stream API来实现替换list1与list2相同key的value,具体实现步骤如下:
-
将list1和list2合并成一个集合,使用stream()方法将集合转换成Stream对象。
-
使用collect()方法将Stream对象转换成Map对象,其中Map的key为成员变量key,value为成员变量value。
-
使用Map的merge()方法,将相同key的value进行替换。
-
将Map对象转换成List对象,使用collect()方法将Map对象的entrySet()转换成List对象。
下面是Java代码示例:
List<YourObject> list1 = ...; // 初始化list1
List<YourObject> list2 = ...; // 初始化list2
List<YourObject> resultList = Stream.concat(list1.stream(), list2.stream()) // 合并list1和list2
.collect(Collectors.toMap(YourObject::getKey, Function.identity(), // 将集合转换成Map
(oldValue, newValue) -> newValue)) // 相同key的value进行替换
.entrySet().stream()
.map(entry -> new YourObject(entry.getKey(), entry.getValue())) // 将Map转换成List
.collect(Collectors.toList());
// 将结果保存到resultList中
其中YourObject为包含成员变量key和value的对象
原文地址: https://www.cveoy.top/t/topic/eYPw 著作权归作者所有。请勿转载和采集!