nach Schülern mit dem zweithöchsten Wert sucht. Wenn es mit einem anderen Schüler dupliziert wird, wird der jüngere von der Funktion zurückgegeben.
Die andere Anforderung dieser Aufgabe (um richtig gelöst zu werden) ist, dass ich kein Objekt erstellen kann. Hier ist der Code der Klasse, mit der ich arbeite:
Code: Select all
import java.time.LocalDate;
import java.util.Comparator;
import java.util.List;
public class Student implements Comparator{
private String firstName;
private String lastName;
private LocalDate dateOfBirth;
private double averageMark;
public double getAverageMark() {
return averageMark;
}
//function below must find student that I described upper. Currently
//function is incomplete because I still try to find correct solution
public static Student findSecondBestStudent(List students) {
return students.stream().sorted(Comparator.reverseOrder());
}
@Override
public int compare(Student o1, Student o2) {
return (int) (o1.getAverageMark() - o2.getAverageMark());
}
}
Ich kann es mit einer for-Schleife lösen, aber diese Lösung stimmt nicht mit der Bedingung der Aufgabe überein (erfordert die Erstellung eines Objekts)