合并 java 中的 2 个对象列表

Merge 2 object lists in java

我有两个 listAlistB 对象类型的列表

ListA[name=abc, age=34, weight=0, height=0] 从 excel sheet

收集的数据

ListB[name=null, age=0, weight=70, height=6] 从数据库中收集的数据

现在我想将两个列表合并为一个列表

MergedList[name=abc, age=34, weight=70, height=6]

注意:我的对象 class 有超过 15 个属性,所以使用 getProperty() 一个一个地添加每个 属性 将是时间- consuming.is有更好的方法吗?

将它们转换为 Map,其中键是对象的名称(您将元素表示为 name=abc 表明它们是 name/value 对)。

Map<String,MyMysteriousObject> converted = list.stream().collect( Collectors.toMap(MyMysteriousObject::getName, Function.identity() ) );

(将 getName 替换为您用来获取对象名称的函数)

然后合并地图。例如,here 描述了如何合并地图。

同时考虑在整个代码中将 List 替换为 Map。肯定也会在其他地方节省很多工作。

但是如果你又要有一个列表,就List<MyMysteriousObject> resultList = new ArrayList<>(resultMap);