【问题标题】:Why key in HashMap can't be duplicated为什么HashMap中的key不能重复
【发布时间】:2015-12-28 06:32:13
【问题描述】:

我知道哈希映射是如何工作的。我们不能在 Hashmap 中使用重复的键。我想知道孙人使用的这背后的逻辑。我们无法在 HashMap 中存储重复键是如何编码的。

【问题讨论】:

  • 因为那样就不会是散列了。
  • 尝试检查map 是什么......它就像一本字典。如果一个键指向两个对象会发生什么?
  • 因为如果可以的话,它会是一张多地图。
  • @Bathsheba 我问过“这个 Sun 人使用的逻辑是什么”。

标签: java dictionary data-structures collections


【解决方案1】:

这是Map interface合约的一部分:

将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射到一个值。

如果一个键有多个值,Map.get(key) 应该返回什么?

【讨论】:

  • 我知道这一点。我的问题是 Sun 人使用的背后的逻辑是什么。
【解决方案2】:

HashMap 是一种可以保存几个键值的数据结构。这个数据结构实现了Map

来自javadoc

地图不能包含重复的键;每个键最多可以映射到一个值。

可以使用它的键直接检索一个值,因此不可能有更多的值与同一个键关联。

相反,可以有多个键指向同一个值。

如果您需要一个不同的数据结构,其中多个值与同一个键相关联,您可以使用像 Guava 这样具有 Multimap 概念的库

注意:使用标准 Map 可以创建一个Map<MyKey, List>,您可以在其中将列表与键相关联。因此,您还可以向该键添加多个值,并将它们存储在关联列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2011-10-30
    • 2010-12-24
    相关资源
    最近更新 更多