gpt4 book ai didi

java - 向 hashCode() 添加数字是为了什么?

转载 作者:行者123 更新时间:2023-11-30 09:59:34 25 4
gpt4 key购买 nike

我是初学者我有源码,我找到了这个方法

    @Override
public int hashCode(){

return this.name.hashCode() + 57;

}

它可以从 HashSet 对象中删除重复项,我的问题是为什么 57 存在,我删除了它然后代码运行良好,那么在此方法中使用数字有什么用?

最佳答案

在代码中:

class MyClass {
public int hashCode(){
return this.name.hashCode() + 57;
}
}

这个问题是有效的,因为 this.name.hashCode() 是一个格式良好的 hashCode() 实现(我们可以假设 this.name 是一个 String)。

我认为添加数字是因为 hashCode() 方法来自 Object。假设您有一个 Set,其值类型为 StringMyClass。如果 String 实例与 MyClass.name 之一相同,则添加 57 可避免两者共享相同的哈希码。

关于java - 向 hashCode() 添加数字是为了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58757873/

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