【问题标题】:Hash Map with LinkedList in javajava中带有LinkedList的哈希映射
【发布时间】:2012-11-02 19:36:30
【问题描述】:

在java中是否有一个内置的hash map的实现,它的值是链表?

如果我说:

 map.put(1, "A");
 map.put(1, "B");

然后它会自动将 A 和 B 添加到链表中。当我从地图中检索时,如:

  map.get(1)

我得到一个包含它们的列表?

【问题讨论】:

    标签: java linked-list hashmap


    【解决方案1】:

    Java 没有,但您可以使用 MultiMap 中的 Google Guava

    类似于 Map 的集合,但可以将多个值与单个键相关联。如果您使用相同的键但值不同的两次调用 put(K, V),则多重映射包含从键到两个值的映射。

    get(K)、keySet()、keys()、values()、entry() 和 asMap() 方法返回作为多图视图的集合

    这篇文章Multimaps - Google Guava 让您全面了解如何使用它,以及如何使用HashMap 使用List 作为值。

    【讨论】:

      【解决方案2】:

      第二次放置将覆盖第一次放置。您将得到 B 作为响应。

      根据javadoc

      如果映射先前包含键的映射,则替换旧值

      如果要保留两个条目,则需要使用第三方库 google guava MultiMap

      【讨论】:

        【解决方案3】:

        不,只是构建你自己的。

        首先你取一个HashMap,如果key不存在你把linkedList放进去……

        简单...

        【讨论】:

          猜你喜欢
          • 2018-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-24
          • 1970-01-01
          • 1970-01-01
          • 2014-09-16
          • 1970-01-01
          相关资源
          最近更新 更多