次の TreeMap があります。
TreeMap<String, Integer> distances = new TreeMap<String, Integer>();
また、次のような適切な値を持つ文字列「Face」と「Foo」の両方が含まれています。
System.out.println(distances);
収量:
{Face=12, Foo=2}
ただし、正しくは 2 をdistances.get(Face)
返しますがnull
、 をdistances.get(Foo)
返します。以前は動作distances.get(Face)
していましたが、何らかの理由で動作しなくなりました。両方のキーに対して get() を呼び出す直前にマップを出力することに注意してください。そのため、Face の値を誤って null に変更することはありません。他の誰かがこの問題に遭遇したことがありますか? 何か私にできることはありますか?この問題をデバッグする方法を見つけようとしているだけで、ひどい時間を過ごしています。
注: 実際のコードでは、実際には文字列を使用していませんが、別のオブジェクトを使用しているため、:TreeMap<Object, Integer>
です。したがって、変数名とリテラル文字列の単なる混乱ではありません。
hashcode()
2 番目の注意: また、equals()
使用しているオブジェクトの実装についても、かなりの自信を持っています。(また、私の実装が正しくなければ、最初から機能しないのではないでしょうか?ランダムに動作を停止するのではなく?)