我正在尝试使用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。
答案 0 :(得分:1)
首先流向用户,而不是组织:
return users.stream()
.filter(user -> organizations.stream().anyMatch(org -> org.exist(user)))
.collect(MultimapCollector.toMultimap(User::role, User::id));