1

equals() と hashCode() のオーバーライドに関するいくつかの回答では、Java の HashMap でそれらをキーとして使用する必要性とアプリケーションについて説明しています。私の質問は、Java KeyStroke クラスを HashMap のキーとして安全に配置できるかどうかです。さらに、迷惑ではないので、これらの質問を続けます。提供されたクラス (KeyStroke は Swing によって提供されていると思います) がこのコンテキストで安全に使用できるかどうかを確認するにはどうすればよいでしょうか...つまり、equals() と hashCode をオーバーライドします。 ()?

前もって感謝します!

4

2 に答える 2

3

がオーバーライドされているかどうかを確認する方法equalsは、 APIを確認することです。でオーバーライドされませんが、でオーバーライドされます。実際、次のように述べています。hashCodehashCodeequalsKeyStrokeAWTKeyStrokeAWTKeyStroke#hashCode

[このオブジェクトは]ハッシュテーブルのインデックス値として適しています。

于 2012-05-04T17:52:03.377 に答える
2

HashMapキーがequalsとhashCodeをオーバーライドし、不変であり、APIをチェックすると、KeyStrokeが不変である場合に最適です。だからそれは大丈夫なはずです。

于 2012-05-04T17:51:42.790 に答える