java - 从内部嵌套循环返回收集的结果
问题描述
我正在尝试使用 Java8 流来迭代 2 个列表并在内循环中累积结果并最终返回Multimap<String,String>
。
这是一个片段:
private Multimap<String, String> processUsers(List<Organization> organizations, List<User> users) {
return organizations.stream() //
.map(organization-> users.stream()
.filter(user -> organization.exist(user))
.collect(MultimapCollector.toMultimap(User::role, User::id))
);
}
这不会建立,因为它返回Stream<Object>
. 如何修复此方法以从该方法收集并返回 MultiMap。
解决方案
首先流过用户,而不是组织:
return users.stream()
.filter(user -> organizations.stream().anyMatch(org -> org.exist(user)))
.collect(MultimapCollector.toMultimap(User::role, User::id));
推荐阅读
- ag-grid - 如何对出现在 ag-Grid 和 AdapTable 的过滤器列表中的列值进行排序?
- python - Pandas groupby 多列然后子图
- c - 试图尝试cs50中的可读性问题。无法计算字符串中的字母
- javascript - 创建一个函数 funcA,它接收一个数字数组并在 2 秒后返回它们的总和
- pine-script - 我不能每隔几个柱计算一个系列值,它是一个错误吗?
- android - marquee_forever 不适用于 Android 10
- django - 如何在模板中显示所有子对象?
- c# - 将整数写入 OPC UA 服务器 - “不同类型”错误
- scala - 方法 my_udf 有返回语句;需要结果类型
- reactjs - 使用 HTTP 请求反应路由器嵌套路由 v5