2012-05-04 56 views
1

有關重寫equals()和hashCode()的幾個答案描述了兩者以及將它們用作Java中的HashMap中的鍵的應用程序的需求。我的問題是,Java KeyStroke類可以安全地作爲HashMap中的一個鍵嗎?此外,所以我不惱人,並繼續提出這些問題,如何確定提供的類(我認爲KeyStroke是否由Swing提供)在這種情況下是否安全使用......即,重寫equals()和hashCode()?KeyStroke類作爲HashMap中的一個鍵

在此先感謝!

回答

3

查看equalshashCode是否被覆蓋的方法是查看APIhashCodeequalsKeyStroke中不被覆蓋,但它們在AWTKeyStroke中。實際上,AWTKeyStroke#hashCode表示:

[該對象是一個不錯的選擇,作爲散列表中的索引值。

+0

確實。 @JagWire:這是正確的答案。 1+ –

+0

@傑弗裏:非常感謝!我絆倒了KeyStroke javadoc,完全缺少AWTKeyStroke擴展。再次感謝... – JagWire

2

最佳,如果一個HashMap鍵覆蓋equals和hashCode,是不變,如果您檢查API,鍵擊。所以它應該沒問題。