gpt4 book ai didi

java - 使用 Java 对象作为 Map 键的问题

转载 作者:行者123 更新时间:2023-12-02 10:53:30 25 4
gpt4 key购买 nike

给定一个我们称为 loc 的对象,它只包含 2 个 int 成员值,我相信我需要想出一种机制来为该对象生成哈希码。我在下面尝试的方法不起作用,因为它使用对象引用,并且尽管具有相同的成员变量,但两个引用将不同。

Map<Loc,String> mapTest = new HashMap<Loc,String>();
mapTest.put(new Loc(1,2), "String 1");
mapTest.put(new Loc(0,1), "String 2");
mapTest.put(new Loc(2,2), "String 3");

System.out.println("Should be String 2 " + mapTest.get(new Loc(0,1)));

经过一番阅读后,我似乎需要为这个对象滚动我自己的哈希码,并使用该哈希码作为键。只是想确认我走在正确的轨道上,如果有人可以指导我进行简单的实现来查看那就太好了。

谢谢

最佳答案

是的,您需要重写equals()hashCode(),并且它们的行为需要一致(也就是说,相等的对象必须具有相同的哈希码) 。不,您不直接使用哈希值; Map 使用它。

关于java - 使用 Java 对象作为 Map 键的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202777/

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