gpt4 book ai didi

java - 如何比较两个整数?

转载 作者:IT老高 更新时间:2023-10-28 20:54:32 27 4
gpt4 key购买 nike

我必须比较两个 Integer 对象(不是 int)。比较它们的规范方法是什么?

Integer x = ...
Integer y = ...

我能想到这个:

if (x == y) 

== 运算符只比较引用,因此这只适用于较小的整数值。但也许自动装箱会开始......?

if (x.equals(y)) 

这看起来像是一项昂贵的操作。有没有这样计算的哈希码?

if (x.intValue() == y.intValue())

有点冗长...

编辑:感谢您的回复。尽管我现在知道该做什么,但事实分布在所有现有答案(甚至已删除的答案上:)),我真的不知道该接受哪一个。所以我会接受最佳答案,它指的是所有三种比较可能性,或者至少是前两种。

最佳答案

这就是equals方法的作用:

public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}

如您所见,没有哈希码计算,但还有一些其他操作发生在那里。尽管 x.intValue() == y.intValue() 可能会稍微快一些,但您已经进入了微优化领域。另外,编译器可能会优化 equals() 调用,尽管我不确定。

我通常会使用原语 int,但如果我必须使用 Integer,我会坚持使用 equals()

关于java - 如何比较两个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1873832/

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