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

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

1 User实体类

public class User {
    private Long userId;
    /** * 用户名(登录) */
    private String username;
    /** * 年龄 */
    private int age;
    /** * 性别 */
    private int sex;
    /** * 密码 */
    private String password;
}

2 单字段分组

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

3 多字段分组

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

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

相关文章

最新文章

更多