在实现比较器接口(interface)以实现对象的自然排序时:
假设我们有类帐户:
class Account
{
Account(String name, int id)
int balance()
void deposit(int n)
}
我们想对两个账户的账户余额进行排序
这两种方法有什么区别?
public class comparebalances implements Comparable <Account>
{
public int compare (Account acc1, Account acc2)
{
return acc1.balance()-acc2.balance();
}
}
public class comparebalances implements Comparable <Account>
{
public int compare (Account acc1, Account acc2)
{
if (acc1.balance()> acc2.balance())
return 1;
else if (acc1.balance()< acc2.balance())
return -1;
else if (acc1.balance()==acc2.balance())
return 0;
}
}
最佳答案
正如 Puce 已经写过的那样,第二种方法更安全,因为整数溢出会给您带来意想不到的输出。如果你希望它既简短又安全,你可以这样写:
return Integer.compare(acc1.balance(), acc2.balance());
关于java - 不同类型的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16582352/