从内部嵌套循环返回收集的结果

时间:2018-11-02 16:26:27

标签: java java-8 java-stream

我正在尝试使用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。

1 个答案:

答案 0 :(得分:1)

首先流向用户,而不是组织:

return users.stream()
    .filter(user -> organizations.stream().anyMatch(org -> org.exist(user)))
    .collect(MultimapCollector.toMultimap(User::role, User::id));