公共类<generic type =“”>实现可比较

时间:2016-04-11 20:32:02

标签: java comparable compareto implements

我有一个公共类帐户,我想用可比较的方式实现,我的问题如下:

如何才能使余额最低的帐户成为&#34;最小的&#34;在我的比较中?

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) {
         ????????
  }

2 个答案:

答案 0 :(得分:2)

compareTo方法必须返回:

  • 如果小于其他,则为负整数,
  • 如果这等于其他
  • 则为零
  • 一个正整数,如果这个或大于其他

如果值接近return this.balance - other.balanceDouble.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取决于您实施。