是不是写出来更好
int primitive1 = 3, primitive2 = 4;
Integer a = new Integer(primitive1);
Integer b = new Integer(primitive2);
int compare = a.compareTo(b);
或
int primitive1 = 3, primitive2 = 4;
int compare = (primitive1 > primitive2) ? 1 : 0;
if(compare == 0){
compare = (primitive1 == primitive2) ? 0 : -1;
}
我认为第二个更好,应该更快和更多的内存优化。但它们不是相等的吗?
发布于 2012-02-05 23:34:04
使用Integer.compare(int, int)
。不要试图微优化你的代码,除非你能证明你有一个性能问题。
发布于 2012-02-05 23:33:48
我可以提议第三个吗?
((Integer) a).compareTo(b)
发布于 2012-02-05 23:44:40
将整数原语封装到整数对象中会占用一些内存,但只有在非常罕见(内存需求)的情况下(具有1000+元素的数组),差异才会显着。我不推荐以这种方式使用new Integer(int a)构造函数。这就足够了:
Integer a = 3;
关于比较,有Math.signum(双d)。
compare= (int) Math.signum(a-b);
https://stackoverflow.com/questions/9150446
复制相似问题