Помогите с Java кодом для сортировки GPA

1

Я участвую в старшекласснике, и у меня есть назначение 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. Нужно ли сначала сортировать, а потом извлекать? Что-нибудь еще происходит?

  • 0
    В этом отношении нет причин сортировать массив. Просто просмотрите весь массив и узнайте, у какого студента был самый высокий средний балл.
  • 0
    Помимо реализации сопоставимого, просто переберите весь массив и получите максимальный средний балл. Основываясь на индексе arraylist, вернуть arraylist emelent. Вы обучаете студента, но почему вы не можете ответить на этот вопрос? Просто интересуюсь.
Теги:
sorting

1 ответ

2

Один из способов сделать это - заставить 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

  • 0
    Это был бы самый простой и самый элегантный способ. Если вы не можете изменить класс ученика (не можете заставить его реализовать Comparable), вы застряли с реализацией алгоритма сортировки самостоятельно. Google Bubblesort или Gnomesort.
  • 1
    @ Миша не нужна. Collections.sort имеет вторую подпись, которая принимает java.util.Comparator . Если изменение класса Student не допускается, ОП может создать компаратор
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню