可与双打

时间:2016-06-07 04:09:40

标签: java comparable

假设已经定义了一个Point2D类来存储带有x和y坐标的二维点(两者都是双精度)。该课程包括以下成员:

enter image description here

您的任务是通过添加适当的compareTo方法将类修改为Comparable。应该将点数相对于它们与原点的距离进行比较,其中更接近原点的点数更少"更少"远远超过它。两点之间的距离定义为x和y坐标之差的平方和的平方根。

我不确定如何在有double时实现compareTo方法。 使用整数和字符串,我将使用以下语法:

public int compareTo(object name) {
    // comparing integers
    if (this.object != other.object) {
        return this.field - other.field;
    } else { // comparing strings
        return toString().compareTo(other.toString());
    }
}

比较两个双打之间是否存在一般化的实施策略,如货币或上面的Point类?

1 个答案:

答案 0 :(得分:1)

使用int Double.compare(double d1, double d2)

您也不应该this.field - other.field,因为在数字溢出的情况下可能会返回错误的结果。使用int Integer.compare(int x, int y)