【发布时间】:2019-07-24 06:52:28
【问题描述】:
我有 2 个列表,第一个列表包含一个可以重复的字段,第二个列表包含相同的字段而不与其他字段重复。我需要的是根据该公共字段将两个列表合并为一个。
清单 1:
[
{
"id" : "1"
"name : "hello",
"item_name": "Name"
},
{
"id" : "1"
"name : "hi"
"item_name": "Name2"
},
{
"id" : "2"
"name : "hello"
"item_name": "Name"
}
]
第二名单:
[{
"id" : "1"
"age" : "10",
"place" : "0",
"date" : "0"
},
{
"id" : "2"
"age" : "12",
"place" : "1",
"date" : "0
}]
预期结果:
[
{
"id" : "1"
"name : "hello",
"item_name": "Name",
**"age" : "10",
"place" : "0",
"date" : "0**
},
{
"id" : "1"
"name : "hi"
"item_name": "Name2"
**"age" : "10",
"place" : "0",
"date" : "0"**
},
{
"id" : "2"
"name : "hello"
"item_name": "Name"
**"age" : "12",
"place" : "1",
"date" : "0"**
}
]
粗体区域从第二个列表中加入 请帮忙
我试过了:
Map<String, String> listMap = list2
.stream()
.collect(Collectors.toMap(List1Entity::getId,
List1Entity::getId));
list1.forEach(a -> {
a.setPlace(listMap.get(a.getId()));
});
但在 .collect() 处出错,
不存在实例或类型变量,因此 List2Entity 符合 List1Entity
【问题讨论】:
-
在某种意义上听起来像 1 是
List而 2 是Set。如果这可以改善你正在尝试的东西。请分享让您陷入困境的原因以及问题中的实体。 -
@Naman,两者都不是对象列表