public static void main(String[] args) {
List<Student> list = new ArrayList<>();
list.add(new Student("A",10,LocalDateTime.now()));
list.add(new Student("B",11,LocalDateTime.now().minus(2, ChronoUnit.MONTHS)));
list.add(new Student("C",12,LocalDateTime.now().minus(2, ChronoUnit.MONTHS)));
list.add(new Student("D",13,LocalDateTime.now().minus(3, ChronoUnit.MONTHS)));
Map<String, List<Student>> map = list.stream().collect(Collectors.groupingBy(t -> t.getDateTime().format(DateTimeFormatter.ofPattern("yyyy-MM"))));
}
static class Student{
private String name;
private Integer age;
private LocalDateTime dateTime;
public Student(String name, Integer age, LocalDateTime dateTime) {
this.name = name;
this.age = age;
this.dateTime = dateTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public LocalDateTime getDateTime() {
return dateTime;
}
public void setDateTime(LocalDateTime dateTime) {
this.dateTime = dateTime;
}
}