Java Stream Collectors.groupingBy()实现分组(单字段分组,多字段分组)

x33g5p2x  于2022-01-11 转载在 Java  
字(0.7k)|赞(0)|评价(0)|浏览(648)

1 User实体类

  1. public class User {
  2. private Long userId;
  3. /** * 用户名(登录) */
  4. private String username;
  5. /** * 年龄 */
  6. private int age;
  7. /** * 性别 */
  8. private int sex;
  9. /** * 密码 */
  10. private String password;
  11. }

2 单字段分组

  1. //根据年龄分组
  2. List<User> userList = new ArrayList<>();
  3. //方法引用实现
  4. Map<Integer, List<User>> ageGroupMap = userList.stream().collect(Collectors.groupingBy(User::getAge));
  5. //lambda表达式实现
  6. Map<Integer, List<User>> ageGroupMap2 = userList.stream().collect(Collectors.groupingBy(x->x.getAge()));

3 多字段分组

  1. //根据年龄和性别分组
  2. List<User> userList = new ArrayList<>();
  3. //lambda表达式实现
  4. Map<String, List<User>> ageGroupMap = userList.stream().collect(Collectors.groupingBy(x -> x.getAge() + "#" + x.getSex()));

分完组之后key是这几个拼成的string。

相关文章

最新文章

更多