Java List转Map

List<User> users = new ArrayList<>();

        for (int i = 1; i < 100; i++) {
            User user = new User();
            user.setId(i);
            user.setUsername(i+"");
            user.setRemark((i % 10) + "");
            users.add(user);
        }

        Map<Integer, User> maps = users.stream().collect(Collectors.toMap(User::getId, p -> p));
        Map<String, List<User>> mapss = users.stream().collect(Collectors.groupingBy(User::getRemark));

// 组合字段 分组现实每个班不同课程的学生信息
Map<String, List<Student>> combineFiledKey = students.stream().collect(Collectors.groupingBy(student -> student.getClazz() + "#" + student.getCourse()));

 

System.out.println("--------- 根据字段分组,每个分组按照指定字段进行生序排序 ----------");
Map<Integer, List<Student>> sortGroupMap = list.stream().sorted(Comparator.comparing(Student::getScore))
.collect(Collectors.groupingBy(Student::getId));
System.out.println(JSONObject.toJSONString(sortGroupMap));

System.out.println("--------- 先排序,再分组 ----------");
Map<Integer, List<Student>> reversedSortGroupMap = list.stream().sorted(Comparator.comparing(Student::getScore).reversed())
.collect(Collectors.groupingBy(Student::getId));
System.out.println(JSONObject.toJSONString(reversedSortGroupMap));

 

posted @ 2023-09-26 14:36  都是城市惹的祸  阅读(34)  评论(0)    收藏  举报