java如何从groupby方法返回自定义列表而不是流中的对象列表?

问题描述 投票:0回答:1

我有一个包含这些字段的实体

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 在同一行中?

java java-stream
1个回答
1
投票

您可以使用重载的

groupingBy
mapping
方法来映射分组值

Map<Boolean, List<Long>> result = userList.stream().collect(Collectors.groupingBy(User::getStudent, Collectors.mapping(User::getId, Collectors.toList())));
© www.soinside.com 2019 - 2024. All rights reserved.