首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >原语为->整数/整数的compareTo

原语为->整数/整数的compareTo
EN

Stack Overflow用户
提问于 2012-02-05 23:30:36
回答 7查看 154.8K关注 0票数 67

是不是写出来更好

代码语言:javascript
复制
int primitive1 = 3, primitive2 = 4;
Integer a = new Integer(primitive1);
Integer b = new Integer(primitive2);
int compare = a.compareTo(b);

代码语言:javascript
复制
int primitive1 = 3, primitive2 = 4;
int compare = (primitive1 > primitive2) ? 1 : 0;
if(compare == 0){
    compare = (primitive1 == primitive2) ? 0 : -1;
}

我认为第二个更好,应该更快和更多的内存优化。但它们不是相等的吗?

EN

回答 7

Stack Overflow用户

发布于 2012-02-05 23:34:04

使用Integer.compare(int, int)。不要试图微优化你的代码,除非你能证明你有一个性能问题。

票数 62
EN

Stack Overflow用户

发布于 2012-02-05 23:33:48

我可以提议第三个吗?

代码语言:javascript
复制
((Integer) a).compareTo(b)  
票数 15
EN

Stack Overflow用户

发布于 2012-02-05 23:44:40

将整数原语封装到整数对象中会占用一些内存,但只有在非常罕见(内存需求)的情况下(具有1000+元素的数组),差异才会显着。我不推荐以这种方式使用new Integer(int a)构造函数。这就足够了:

代码语言:javascript
复制
Integer a = 3; 

关于比较,有Math.signum(双d)。

代码语言:javascript
复制
compare= (int) Math.signum(a-b); 
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9150446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档