【发布时间】:2019-03-13 15:03:09
【问题描述】:
我有一个任务:给定一个用户列表,每个用户都有一些特权,按特权对用户进行分组。我应该使用流 API。这是我想到的唯一代码:
public Map<Privilege, List<User>> groupByPrivileges(List<User> users) {
return users.stream().collect(groupingBy(User::getPrivileges));
}
正如您在方法的返回类型中看到的那样,我需要获取一个以单个 Privilege 对象作为键的映射,但是如果用户具有多个权限,则可能会在不同的键下多次出现。
主要问题是User::getPrivileges返回List<Privilege>,而我只知道如何处理单个Privilege。
【问题讨论】:
-
你需要什么?
-
但这不是我需要的 - 不幸的是,我们不在读心术领域。
-
您缺少括号,它应该是
Collectors.groupingBy,除非您有static导入。修复这两件事使它可以为我编译 -
@GBlodgett,对不起,如果我不清楚,我需要“按权限对用户进行分组”。它在我的任务描述中指定。
-
然后edit问题并添加这些信息......
标签: java java-8 java-stream grouping