Я участвую в старшекласснике, и у меня есть назначение CS, и я не знаю, как ей помочь.
Предполагается, что она "напишет метод, который возьмет множество студентов и вернет ученика с самым высоким GPA".
Приведенные коды
public class Student {
private String myName;
private double my GPA;
public Student (String n, double gpa) {
myName = n;
myGPA = gpa;
}
public String getName() {
return myName;
}
public double getGPA() {
return myGPA;
}
/* other methods not shown */
}
Мы знаем, о чем они спрашивают, но мы точно не знаем, как это сделать. Мы говорим, что они просят нас сортировать людей и их GPA, а затем возвращать JUST студенту, у которого самый высокий показатель GPA. Нужно ли сначала сортировать, а потом извлекать? Что-нибудь еще происходит?
Один из способов сделать это - заставить Student реализовать Comparable:
public class Student implements Comparable<Student>{
...
int compareTo(Student s){
return Double.valueOf(myGPA).compareTo(s.getGPA())
}
...
}
И затем используйте:
Collections.sort(studentlist);
studentlist.get(0);
EDIT: скорректированный код для работы с примитивными двойниками, благодаря комментарию @ThanksForAllTheFish
Collections.sort
имеет вторую подпись, которая принимает java.util.Comparator
. Если изменение класса Student
не допускается, ОП может создать компаратор