【发布时间】:2016-08-06 03:33:11
【问题描述】:
我想覆盖 hashmap put 函数。默认情况下,如果存在相同的键名,则 map 的属性是更改键的值。 我想制作一个保存旧键值的地图。
【问题讨论】:
我想覆盖 hashmap put 函数。默认情况下,如果存在相同的键名,则 map 的属性是更改键的值。 我想制作一个保存旧键值的地图。
【问题讨论】:
实际上,这可能比您想象的要容易。 你可以这样做:
Map<K, ArrayList<V>> multiMap = new HashMap<K, ArrayList<V>>();
您心目中的集合称为multimap。 Google 的 Guava 提供了生产就绪的实现。看看HERE。
【讨论】:
我遇到了类似的问题,如果我理解正确的话,您可以为此目的使用 2 个库:
Google Guava 和 Apache 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");
【讨论】: