gpt4 book ai didi

java - 为什么我可以从具有不同对象的 HashMap 中检索值?

转载 作者:行者123 更新时间:2023-11-30 11:22:29 26 4
gpt4 key购买 nike

我用 eidename 写了一个 Employee 类,用 setter 和 getter 覆盖了 equals()hashcode()

现在我编写了另一个类 HashMapTest,我在其中创建了三个 Employee 对象。我将其中两个添加到 HashMap 中,第三个与第一个员工对象相同。

我的 HashMapTest 类如下:

public class HashMapTest {
public static void main(String[] args) {
Employee e1 = new Employee();
e1.setEid(1);
e1.setEname("Ganesh");

Employee e2 = new Employee();
e2.setEid(1);
e2.setEname("Mahesh");

Map<Employee, String> map = new HashMap<Employee, String>();
map.put(e1, "Software Developer");
map.put(e2, "Software Test Engineer");

Employee e3 = new Employee();
e3.setEid(1);
e3.setEname("Ganesh");

System.out.println("Getting employee e3 details " + map.get(e3));
}
}

我没有将 e3 添加到 HashMap,但我仍然从 HashMap 中获取它。

请解释这背后的逻辑。

最佳答案

逻辑是 Map 为您提供相同键的相同值。您的 e3e1 完全相同(从 map 的角度来看,因为您已经覆盖了 equals()hashcode() ),并且您确实添加了一个 String 并将 e1 作为映射中的键。

关于java - 为什么我可以从具有不同对象的 HashMap 中检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661983/

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