hashmap键应该是不可变的吗?

时间:2016-12-23 10:17:18

标签: object hashmap

我有一个问题,如果我们需要将自定义对象作为键传递,我们只需要覆盖equals和hashcode方法,甚至该类应该是不可变的?

因为字符串是不可变的所以我们更喜欢它作为hashmap中的键,所以我用这个逻辑提出了这个问题?

1 个答案:

答案 0 :(得分:1)

这取决于你的散列函数。

正在散列的所有数据应该是不可变的。否则,一旦改变其中一个字段,您将无法访问您的值,直到您传递另一个以相同方式散列的对象。使用任何其他关键对象再次找到您的价值的几率非常低。