【问题标题】:How to override Hashmap put function?如何覆盖 Hashmap put 函数?
【发布时间】:2016-08-06 03:33:11
【问题描述】:

我想覆盖 hashmap put 函数。默认情况下,如果存在相同的键名,则 map 的属性是更改键的值。 我想制作一个保存旧键值的地图。

【问题讨论】:

    标签: function hashmap put


    【解决方案1】:

    实际上,这可能比您想象的要容易。 你可以这样做:

    Map<K, ArrayList<V>> multiMap = new HashMap<K, ArrayList<V>>();
    

    您心目中的集合称为multimap。 Google 的 Guava 提供了生产就绪的实现。看看HERE

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,如果我理解正确的话,您可以为此目的使用 2 个库:
      Google GuavaApache common collections。 p>

      谷歌番石榴:

          <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>30.1-android</version>
          </dependency>
      

      然后你可以这样实现:

      Multimap<String, String> multimap = ArrayListMultimap.create();
                   multiMap.put("key1", "value1");
                   multiMap.put("key1", "value2");
      

      我认为这种方法也可以帮助你

      Apache 常用集合:

          <dependency>
              <groupId>org.apache.commons</groupId>
              <artifactId>commons-collections4</artifactId>
              <version>4.2</version>
          </dependency>
      

      然后执行:

          MultiMap multiMap = new MultiValueMap();
          multiMap.put("key1", "value1");
          multiMap.put("key1", "value2");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-21
        • 2016-05-04
        • 2012-10-16
        相关资源
        最近更新 更多