在过去的一个小时里,我已经阅读了很多帖子,但是对于在 Hashmap 中使用不可变对象作为键的概念,我仍然不是很清楚。我有一个哈希图,其键为字符串。哈希图中的值是 MyStore,其中 MyStore 表示有关我拥有的商店的信息。字符串代表地址。在我的代码中,我的逻辑是,我首先在映射中查找该键,如果存在 - > 获取它的值,如果它不存在则将其放入 hashmap 中。我的经理刚刚告诉我关键是将来会改变,那就是我的商店地址将来会改变。他说在那种情况下,我首先检查密钥是否存在的逻辑将不起作用。我不明白他在这里的意思。我想非常清楚地理解以下几点-
- hashmap 的可变键和不可变键之间的区别。
- 如果您使用可以更改的不可变密钥会发生什么?- 我知道这没有意义,但我想清楚地了解我的经理在这里所说的内容。
- 如果将字符串用作哈希映射中的键缓存它们的哈希码,一些帖子会谈论字符串 - 这是什么意思?
- 如果假设我在实现 hashcode 和 equals 的 hashmap 中使用可变对象作为键,那么它会起作用吗?我假设它会因为如果密钥发生变化,contains 方法将查看密钥是否存在。如果它不存在,它将放置条目,以便您将来获取它。
如果之前已经讨论过,我并不是要创建重复的帖子。如果我错过了阅读可以回答我所有问题的帖子,请指出我。如果没有,请用外行的方式解释我的上述问题,以便将来对其他读者有用:)。随意编辑我的帖子的主题,所以将来如果有人有类似的问题,他们会直接登陆这里:)