gpt4 book ai didi

java - 为什么这是 `hashCode()` 的一个很好的实现

转载 作者:行者123 更新时间:2023-12-01 12:13:32 24 4
gpt4 key购买 nike

我看到一段代码重写了equals(),并且可以理解地相应地重写了hashcode()

 @Override
public int hashCode() {
int result = id;
result = 31 * result + (int) (providerId ^ (providerId >>> 32));
result = 31 * result + (int) (promotionId ^ (promotionId >>> 32));
result = 31 * result + (coordinate != null ? coordinate.hashCode() : 0);
return result;
}

有人可以解释一下为什么这个 hashCode 很好吗?为什么它对于特定对象是唯一的?

>>>>> 是什么意思?我认为 >> 向右移动了 x 位,就像乘以 2 一样。

但是>>>是什么意思?

最佳答案

Can someone please explain why is this hashCode good? Why is it unique to a specific object?

不是;本质上没有哈希码函数。只是两个对象具有相同哈希码的情况很少见,并非不可能。

What does >> vs. >>> means? I thought the >> do x bit shifts to the right which is like multiplying by 2.

But what does >>> mean?

这是一个无符号右移。如果第一位已经是 1,则 >> 向左移动 1 秒,无论原始位是什么,>>> 都会向左移动 0 秒.

关于java - 为什么这是 `hashCode()` 的一个很好的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135422/

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