关于覆盖equals()和hashCode()的几个答案描述了两者的需求以及在Java语言中将它们用作HashMap中的键的应用。我的问题是,将Java KeyStroke类作为键放在HashMap中安全吗?此外,我并不烦人,继续问这些问题,如何才能确定所提供的类(我认为KeyStroke是由Swing提供的)是否可以安全地在此上下文中使用……重写equals()和hashCode()?
提前感谢!
发布于 2012-05-05 01:52:03
查看equals和hashCode是否被覆盖的方法是查看API。hashCode和equals在KeyStroke中没有被覆盖,但在AWTKeyStroke中被覆盖。事实上,AWTKeyStroke#hashCode指出:
此对象作为哈希表中的索引值是一个很好的选择。
发布于 2012-05-05 01:51:43
最好的情况是,如果HashMap键覆盖了equals和hashCode,并且是不可变的,并且如果检查该接口,则KeyStroke是。所以应该没问题。
https://stackoverflow.com/questions/10453715
复制相似问题