Objekt in der Liste nach bestimmten Kriterien finden (zweitgrößter Wert)Java

Java-Forum
Guest
 Objekt in der Liste nach bestimmten Kriterien finden (zweitgrößter Wert)

Post by Guest »

Ich habe eine Liste und muss ein bestimmtes Objekt finden. Ich muss die Liste nach dem durchschnittlichen Mark-Wert der Schüler sortieren und eine Funktion erstellen, die
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());
}
}
Im Moment habe ich versucht, dieses Problem zu lösen, indem ich den Stream umgekehrt sortierte, dann den ersten Wert des Streams entfernte, zwei nächste Objekte des Streams vergleichte und das richtige zurückgab.
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)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post