有关重写equals()和hashCode()的几个答案描述了对两者的需求以及将它们用作Java中HashMap中的键的应用。我的问题是,Java KeyStroke类是否可以安全地作为HashMap中的键?此外,所以我不讨厌并继续问这些问题,如何找出所提供的类(我认为KeyStroke是由Swing提供)在这种情况下是否可以安全使用...即。覆盖equals()和hashCode()?
提前感谢!
答案 0 :(得分:3)
查看equals
和hashCode
是否被覆盖的方法是查看API。 hashCode
中equals
和KeyStroke
未被覆盖,但它们位于AWTKeyStroke
。实际上,AWTKeyStroke#hashCode
表示:
[这个对象]是一个很好的选择,作为哈希表中的索引值。
答案 1 :(得分:2)
最好是HashMap键覆盖equals和hashCode并且 不可变 ,如果你检查API,KeyStroke就是。所以它应该没问题。