学习Java并无法使用compareTo方法。我试过谷歌,但这对我需要的帮助不大。我需要的是

// compareTo public int compareTo(Student other)
// is defined in the Comparable Interface
    // and should compare the student ID's  (they are positive integers).
// Must be able to handle null "other" students. A null student should be
// ordered before any student s so the s.compareTo(null) should be positive.


所以基本上是一个compareTo()方法,最后,该方法将帮助我根据学生编号从最小到最大的顺序排列学生。.我在砖墙上,只需要一些正确方向的帮助

public int compareTo(StudentIF other) {
    // do stuff
    return 0;
}

最佳答案

有一个关于实现compareTo() here的很好的教程。就是说,当学习总体上如何做某事时,通常有助于我了解如何在特定用例中实现它-因此,在这种情况下,我可以想象这样的事情就足够了:

public int compareTo(StudentIF other) {
    if (other == null) {return 1;} //satisfies your null student requirement
    return this.studentId > other.studentId ? 1 :
                            this.studentId < other.studentId ? -1 : 0;
}


如果compareTo()对象相对较小,则other将返回正值;如果对象相对较大,则将返回负值;如果相等,则返回0。假设您熟悉三元运算符,那么您会发现这就是这样做的。如果不是,则if / else等效项为:

    public int compareTo(StudentIF other) {
        if (other == null) { return 1; } //satisfies your null student requirement
        if (this.studentId > other.studentId) return 1;
        else if (this.studentId < other.studentId) return -1;
        else return 0; //if it's neither smaller nor larger, it must be equal
}

关于java - Java中的compareTo()方法(学生ID),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25007311/

10-12 03:03