1

2 つのオブジェクトのハッシュマップがありますが、ハッシュコードが異なるため、異なる値を返すようです。元。

HashMap<HashMapTest, String> newMap = new HashMap<HashMapTest, String>();
    newMap.put(new HashMapTest("test"), "line");
    System.out.println(newMap.get(new HashMapTest("test")));

ハッシュコードは、ハッシュマップに入れるときとハッシュマップから取得するときで異なります。これを修正する方法はありますか?

4

1 に答える 1

6

hashCode()でメソッドのカスタム実装を提供しましたHashMapTestか? hashCode()そうではないと思いますが、それが継承元のデフォルトの動作ですjava.lang.Object(実際には 2 つの異なるオブジェクトを使用しています)。この質問hashCode/equalsを見て、クラスの正しい実装を提供してください。

于 2012-04-21T15:46:37.287 に答える