为 map 中不存在的 key 提供缺省值
需求
需要往一个复杂的 map 中写入数据,或为 map 中不存在 key 提供 default value
java standard library
Map<K, List<V>> map = new HashMap<>();
map.computeIfAbsent(key, k -> new ArrayList<>());
map.get(key).add(val);
guava library
引入
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1.1-jre</version>
</dependency>
用法
从用法上将 Multimap
把一个复杂 Map
直接抽象成了一个简单 Map
,这样在写入一个 key-value pair
时完全不用担心 key 在不在 map 里。代码将进一步简化为这样:
Multimap<K, V> multimap = ArrayListMultimap.create();
multimap.put(key, val);
参考
SchelleyYuKi youtube