Если у вас есть только дата, пожалуйста, используйте LocalDate
и DateTimeFormatter
из java-8
studentList.add(new Student("A", LocalDate.parse("01-01-1990", DateTimeFormatter.ofPattern("dd-MM-yyyy")));
Так что класс Student
будет
public class Student {
private String name;
private date LocalDate;
//getters and setters
}
Теперь используйте Collections.max
Поскольку LocalDate
реализует Comparable
Student student = Collections.max(studentList, Comparator.comparing(s -> s.getDate()));
Для установки H
и L
1-й доступ
Подход, который я бы предложил здесь, это сначала установить name = L
для каждого студента, использующего forEach
studentList.forEcah(stu->stu.setName("L"));
Теперь просто получите максимальный ученик, используя компаратор и установите имя = H
Student student = Collections.max(studentList, Comparator.comparing(s -> s.getDate()));
student.setName("H");
2-й подход
Вы можете отсортировать List
сначала
studentList.sort(Comparator.comparing(s -> s.getDate()).reversed());
И затем установить имя = H
для первой записи и L
для остальных
IntStream.range(0,studentList.size())
.forEach(i->{
if(i==0) {
studentList.get(i).setName("H");
}
else {
studentList.get(i).setName("L");
}
});