我有一个包含这些字段的实体
private Long id;
private String name;
private Boolean isStudent;
现在我可以像下面这样对实体列表进行分组
Map<Boolean, List<User>> result = userList.stream().collect(Collectors.groupingBy(User::getStudent));
但是我正在努力找出如何返回 ID 列表而不是像下面这样的整个
User
列表
Map<Boolean, List<Long>> result = userList.stream().collect(Collectors.groupingBy(...));
我可以在另一行中再次应用流,但是否可以与 groupby 在同一行中?
您可以使用重载的
groupingBy
和 mapping
方法来映射分组值
Map<Boolean, List<Long>> result = userList.stream().collect(Collectors.groupingBy(User::getStudent, Collectors.mapping(User::getId, Collectors.toList())));