【发布时间】:2018-08-11 13:55:56
【问题描述】:
为什么Java库中Long、Integer和Short的静态方法compare的实现不同?
对于Long:
public static int compare(long x, long y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
对于Integer:
public static int compare(int x, int y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
对于Short:
public static int compare(short x, short y) {
return x - y;
}
【问题讨论】:
-
因为所有情况下的返回类型都是
int。 -
因为
x - y更简单并且适用于short。当然,它可以像其他方法一样做很长的路,但更简单的方法也更快,所以它是一个更好的实现。x - y不适用于int和long,所以他们必须使用三元运算符的方式。
标签: java integer compare long-integer short