Как написать метод CompareTo с участием двойных и строковых значений? - PullRequest
0 голосов
/ 31 января 2020
public class Student implements Comparable
{
    private String name;
    private int id;
    private double gpa;

    // This is complete
    public Student(String name, int id, double gpa){
        this.name=name; 
        this.id=id; 
        this.gpa = gpa;
    }

    // The 3 accessors are complete
    public String getName() { return name; }
    public int getId() { return id; }
    public double getGpa() { return gpa; }

    // This method is complete
    public String toString(){
        String s = new String("");
        DecimalFormat fmt = new DecimalFormat("0.00");
        s = "gpa:" + fmt.format(getGpa()) + " name:" + getName() + " id:" + getId();
        return s;
    }

    // Write so that the students come out in ascending(non-descending) order
    // of GPAs. If the GPAs are equal, then the secondary sort criterion should 
    // be based on descending(non-ascending) order of the names.
    // Reminder: use the Double class to help determine "equality" for double primitives
    //           due to the imprecise nature of real numbers
    public int compareTo(Object otherObj){
        Double g = new Double(gpa);
        int gpa1 = g.compareTo(otherObj.getGpa());
        return gpa1;
        int names = getName().compareTo(otherObj.getName());
        return names;
    }

Когда я компилирую это, он возвращает сообщение об ошибке невозможности найти getGpa () и getName (). Кроме того, это как вы превращаете двойной примитив в двойной объект? Я мог бы полностью испортить алгоритм сравнения. Какими будут шаги для кодирования для сравнения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...