1

关于覆盖 equals() 和 hashCode() 的几个答案描述了两者的需求以及在 Java 中将它们用作 HashMap 中的键的应用程序。我的问题是,Java KeyStroke 类可以安全地作为键放入 HashMap 中吗?此外,所以我不烦人并继续问这些问题,如何确定提供的类(我认为 KeyStroke 由 Swing 提供)在这种情况下是否可以安全使用......即覆盖 equals() 和 hashCode ()?

提前致谢!

4

2 回答 2

3

查看是否被覆盖的方法equalshashCode查看APIhashCode并且equals没有被覆盖KeyStroke,但它们在AWTKeyStroke. 事实上,AWTKeyStroke#hashCode声明:

[this object] 作为哈希表中的索引值是一个不错的选择。

于 2012-05-04T17:52:03.377 回答
2

最好是 HashMap 键覆盖 equals 和 hashCode 并且是不可变的,并且如果您检查 API,KeyStroke 是。所以应该没问题。

于 2012-05-04T17:51:42.790 回答