假设已经定义了一个Point2D类来存储带有x和y坐标的二维点(两者都是双精度)。该课程包括以下成员:
您的任务是通过添加适当的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类?
答案 0 :(得分:1)
使用int Double.compare(double d1, double d2)
。
您也不应该this.field - other.field
,因为在数字溢出的情况下可能会返回错误的结果。使用int Integer.compare(int x, int y)
。