gpt4 book ai didi

java - compareTo 与原语 -> 整数/整数

转载 作者:IT老高 更新时间:2023-10-28 13:53:49 28 4
gpt4 key购买 nike

这样写比较好

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;
}

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

最佳答案

为了提高性能,通常最好使代码尽可能简单和清晰,这样通常会表现良好(因为 JIT 会最好地优化此代码)。在您的情况下,最简单的示例也可能是最快的。


我也愿意

int cmp = a > b ? +1 : a < b ? -1 : 0;

或更长的版本

int cmp;
if (a > b)
cmp = +1;
else if (a < b)
cmp = -1;
else
cmp = 0;

int cmp = Integer.compare(a, b); // in Java 7
int cmp = Double.compare(a, b); // before Java 7

如果不需要,最好不要创建对象。

性能方面,第一个是最好的。

如果您确定不会溢出,您可以使用

int cmp = a - b; // if you know there wont be an overflow.

你不会比这更快。

关于java - compareTo 与原语 -> 整数/整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150446/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com