关于覆盖 equals() 和 hashCode() 的几个答案描述了两者的需求以及在 Java 中将它们用作 HashMap 中的键的应用程序。我的问题是,Java KeyStroke 类可以安全地作为键放入 HashMap 中吗?此外,所以我不烦人并继续问这些问题,如何确定提供的类(我认为 KeyStroke 由 Swing 提供)在这种情况下是否可以安全使用......即覆盖 equals() 和 hashCode ()?
提前致谢!
查看是否被覆盖的方法equals
是hashCode
查看API。hashCode
并且equals
没有被覆盖KeyStroke
,但它们在AWTKeyStroke
. 事实上,AWTKeyStroke#hashCode
声明:
[this object] 作为哈希表中的索引值是一个不错的选择。
最好是 HashMap 键覆盖 equals 和 hashCode 并且是不可变的,并且如果您检查 API,KeyStroke 是。所以应该没问题。