映射是由对组成的集合。跟集合相似,但它是一组键值对而不是唯一的元素。唯一的限制在于每个 «键» 必须是唯一的。映射不能包含具有相同键的两个对。
| 操作 | 方法 |
|---|---|
| 获取所有对的集合 | entrySet() |
| 获取所有键的集合 | keySet() |
| 获取所有值的集合 | values() |
| 添加对 | put(key, value) |
| 获取指定键的值 | get(key) |
| 检查指定键是否存在 | containsKey(key) |
| 检查指定值是否存在 | containsValue(value) |
| 检查映射是否为空 | isEmpty() |
| 清除映射 | clear() |
| 删除指定键的值 | remove(key) |
merge
default [V](../../java/util/Map.html) |
[**merge**](../../java/util/Map.html#merge-K-V-java.util.function.BiFunction-)([K](../../java/util/Map.html) key, [V](../../java/util/Map.html) value, [BiFunction](../../java/util/function/BiFunction.html)<? super [V](../../java/util/Map.html),? super [V](../../java/util/Map.html),? extends [V](../../java/util/Map.html)> remappingFunction) |
|---|---|
源码:
default V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction) {Objects.requireNonNull(remappingFunction);Objects.requireNonNull(value);V oldValue = this.get(key);V newValue = oldValue == null ? value : remappingFunction.apply(oldValue, value);if (newValue == null) {this.remove(key);} else {this.put(key, newValue);}return newValue;}
作用:
若map中存在key,则将map.get(key)与value作为两个参数传给remappingFunction(这是一个函数式接口,调用了apply方法),最后返回对新旧两个value做操作的结果
举个例子:

computeIfAbsent
| default V | computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) |
|---|---|
作用:JDK8中Map类新增的一个方法,用来实现当一个KEY的值缺失的时候,使用给定的映射函数重新计算填充KEY的值并返回结果。
举个例子:
putIfAbsent
default V |
putIfAbsent(K key, V value) |
|---|---|
作用:类似于merge,但不如merge功能强大。只能将key对应的旧的value替换为新的value,或者key不存在时添加key-value
返回旧的value,不存在则返回null
举个例子:
