有關重寫equals()和hashCode()的幾個答案描述了兩者以及將它們用作Java中的HashMap中的鍵的應用程序的需求。我的問題是,Java KeyStroke類可以安全地作爲HashMap中的一個鍵嗎?此外,所以我不惱人,並繼續提出這些問題,如何確定提供的類(我認爲KeyStroke是否由Swing提供)在這種情況下是否安全使用......即,重寫equals()和hashCode()?KeyStroke類作爲HashMap中的一個鍵
在此先感謝!
有關重寫equals()和hashCode()的幾個答案描述了兩者以及將它們用作Java中的HashMap中的鍵的應用程序的需求。我的問題是,Java KeyStroke類可以安全地作爲HashMap中的一個鍵嗎?此外,所以我不惱人,並繼續提出這些問題,如何確定提供的類(我認爲KeyStroke是否由Swing提供)在這種情況下是否安全使用......即,重寫equals()和hashCode()?KeyStroke類作爲HashMap中的一個鍵
在此先感謝!
查看equals
和hashCode
是否被覆蓋的方法是查看API。 hashCode
和equals
在KeyStroke
中不被覆蓋,但它們在AWTKeyStroke
中。實際上,AWTKeyStroke#hashCode
表示:
[該對象是一個不錯的選擇,作爲散列表中的索引值。
最佳,如果一個HashMap鍵覆蓋equals和hashCode,是不變,如果您檢查API,鍵擊。所以它應該沒問題。
確實。 @JagWire:這是正確的答案。 1+ –
@傑弗裏:非常感謝!我絆倒了KeyStroke javadoc,完全缺少AWTKeyStroke擴展。再次感謝... – JagWire