我有一个公共类帐户,我想用可比较的方式实现,我的问题如下:
如何才能使余额最低的帐户成为"最小的"在我的比较中?。
public class Account implements Comparable<Account>{
private double balance;
private String acctNum;
public Account(String number, double initBal){
balance = initBal;
acctNum = number;
}
public double getBalance(){
return balance;
}
.....
public int compareTo(Account other) {
????????
}
答案 0 :(得分:2)
compareTo
方法必须返回:
如果值接近return this.balance - other.balance
或Double.MAX_VALUE
,只需执行Double.MIN_VALUE
可能会产生无效结果,因此您应该使用Double.compare
:
public int compareTo(Account other) {
return Double.compare(this.balance, other.balance);
}
答案 1 :(得分:0)
最简单的实施方法是使用Double
作为balance
的类型,只需调用compareTo
方法:
return balance.compareTo(other);
我不是说这是最好的,但它足以开始。
请注意,处理null
取决于您实施。