我必须编写一个方法,该方法需要List<User>
并返回Map<Role,List<User>>
。
User
包含Person
个实例,其中包含Role
我必须创建一个映射,其中Role键映射到用户列表(用户具有此角色)。
我尝试了以下内容:
public static Map<Role, List<User>> groupUsersByRole(List<User> users) {
users.stream().collect(Collectors.toMap((u -> u.getPersonDetails().getRole()), users.stream().collect(Collectors.toList() ) )
users.stream().map(user -> user).filter(u -> u.).collect(Collectors.toList()) );
//users.stream().filter(u -> u.getPersonDetails().getRole().getName().equals(u.getPersonDetails().getRole().getName())).map(user -> user.getName()).
return null;
}
答案 0 :(得分:0)
您要找的是Collectors.groupingBy
,它按照指定的属性对Stream的元素进行分组:
Map<Role, List<User>> map = users.stream().collect(Collectors.groupingBy(u->u.getPersonDetails().getRole()));