public static void main(String[] args) {
List<User> list = new ArrayList<User>();
list = Arrays.asList(
new User("小强", 11, "男", "2022-10-10"),
new User("小玲", 15, "女", "2022-10-10"),
new User("小虎", 23, "男", "2022-10-10"),
new User("小雨", 26, "女", "2022-10-08"),
new User("小飞", 19, "男", "2022-10-14"),
new User("小雨", 26, "女", "2022-10-10"),
new User("小强", 15, "女大", "2022-10-12"),
new User("小玲", 16, "女大", "2022-10-12"),
new User("小虎", 25, "男大", "2022-10-12"),
new User("小雨", 28, "女大", "2022-10-12")
);
Map<String, List<User>> name = list.stream().collect(Collectors.groupingBy(e -> e.getName()));
List<User> time1 = name.values().stream().map(maps -> {
Optional<User> time = maps.stream().min(Comparator.comparing(ee -> DateUtil.parse(ee.getBirthday(), "yyyy-MM-dd")));
return time.orElse(null);
}).collect(Collectors.toList());
System.out.println("time1 = " + time1);
List<User> time2 = name.values().stream().map(maps -> {
Optional<User> time = maps.stream().min(Comparator.comparing(ee -> DateUtils.getMillis(DateUtil.parse(ee.getBirthday(), "yyyy-MM-dd"))));
return time.orElse(null);
}).collect(Collectors.toList());
System.out.println("time2 = " + time2);
}

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41