标签: object hashmap
我有一个问题,如果我们需要将自定义对象作为键传递,我们只需要覆盖equals和hashcode方法,甚至该类应该是不可变的?
因为字符串是不可变的所以我们更喜欢它作为hashmap中的键,所以我用这个逻辑提出了这个问题?
答案 0 :(得分:1)
这取决于你的散列函数。
正在散列的所有数据应该是不可变的。否则,一旦改变其中一个字段,您将无法访问您的值,直到您传递另一个以相同方式散列的对象。使用任何其他关键对象再次找到您的价值的几率非常低。