【发布时间】:2021-12-17 08:51:43
【问题描述】:
您好,如果我必须合并基于两个或更多过滤器的两个列表,你们可以告诉我该怎么做。我试过但无法弄清楚。先感谢您。请在下面找到我尝试过的代码 -
Stream.of(entity.getUsers(), existingEntity.getUsers())
.flatMap(List::stream)
.collect(Collectors.toM`enter code here`ap((AuthorizedUsersEntity::getLightHouseId),
d -> d,
(AuthorizedUsersEntity x, AuthorizedUsersEntity y) -> x == null ? y : x))
.values());
我也想使用另一个属性过滤掉。请在下面找到我期望合并列表的示例
UpdatedUsers - [{"a":"1"},{"b":"2"}, {"c":"3"}],
现有用户 -[{"a":"2"},{"b":"3"}, {"c":"4"},{"d":"5"}}]
合并列表 - [{"a":"1"},{"b":"2",},{"c":"3"},{"d":"5"}]
【问题讨论】:
-
“基于过滤器合并”是什么意思?
-
您能提供您尝试过的任何代码吗?或者至少输入数据和预期输出?这应该有助于使您的问题不那么神秘。
-
这是我尝试过的代码 - Stream.of(entity.getUsers(), existingEntity.getUsers()) .flatMap(List::stream) .collect(Collectors.toMap((AuthorizedUsersEntity:: getLightHouseId), d -> d, (AuthorizedUsersEntity x, AuthorizedUsersEntity y) -> x == null ? y : x)) .values());
-
所以我有 2 个列表 - UpdatedUsers - [{"a":"1"},{"b":"2", "c":"3"}],现有用户 -[ {"a":"2"},{"b":"3", "c":"4",{"d":"5"}}].. 我需要如下组合列表 - 合并列表 - [{"a":"1"},{"b":"2",},{"c":"3"},{"d":"5"}] 我需要根据在两个属性上,而不仅仅是一个。
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: java list lambda merge stream