gpt4 book ai didi

java - Java 中的 HashMap。 hash.containsKey 返回意外的值

转载 作者:行者123 更新时间:2023-12-01 12:59:07 25 4
gpt4 key购买 nike

我的 hashMap 有问题。更具体的是 containsKey。我想检查我的哈希中是否存在一个对象。问题是,当我使用包含相同确切数据的 2 个不同对象调用此方法时,它们应该具有相同的 hashCode。

Person pers1,pers2;
pers1=new Person("EU",22);
pers2=new Person("EU",22);

public int hashCode(){ //From Person Class
return this.getName().hashCode()+age;
}

在我的哈希中插入 pers1 键并调用“hash.containsKey(pers1);”之后返回 true,但“hash.containsKey(pers2)”返回 false。为什么以及如何解决这个问题?

谢谢!

最佳答案

问题的原因似乎是您没有重写 Person 类中的 equals 方法。 Hashmap 在搜索时需要它来定位键。

搜索 key 时执行的步骤如下:

1) 在对象(key)上使用 hashCode() 来定位可以放置 key 的适当存储桶。

2) 找到存储桶后,尝试使用 equals() 方法查找特定的 Key。

关于java - Java 中的 HashMap。 hash.containsKey 返回意外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23659433/

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