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));

浙公网安备 33010602011771号