【发布时间】:2011-08-02 18:53:13
【问题描述】:
Double 有 Double.compare 用于比较两个双精度原语。为什么 Integer 没有一个?
我知道要编写一些微不足道的代码,但出于好奇而询问。
编辑:我意识到 Integer 和 Double 都有 compareTo。但是使用 compareTo 需要将 int 原语装箱到 Integer 对象中,这具有相当高的成本。此外,inta > intb 与 compare(inta, intb) 不同,后者返回 +1、0 或 -1,而前者是 true/false ....
【问题讨论】:
-
它没有
compare(int a, int b)方法,但是你可以使用:new Integer(a).compareTo(b) -
@ty1824 需要将原语装箱到对象中...
-
我明白了。另外,从您的编辑中,您需要从这个答案中得到什么?您需要 +1、0 还是 -1?只使用 +N、0 或 -N 会好吗?如果是这样,您可以简单地从前一个整数中减去第二个整数。
int result = first - second;如果你想要的只是 +1、0 或 -1,你就可以得到结果的大小。result /= Math.abs(result) -
拳击没有“相当高的成本”。
标签: java