文章目录
-
- 1.V getOrDefault(Object key, V defaultValue)
- 2.void forEach(BiConsumer<? super K, ? super V> action)
- 3.V replace(K key, V value)
- 4.boolean replace(K key, V oldValue, V newValue)
- 5.void replaceAll(BiFunction<? super K, ? super V, ? extends V> function)
- 6.V putIfAbsent(K key, V value)
- 7.boolean remove(Object key, Object value)
- 8.V computeIfAbsent(K key,Function<? super K, ? extends V> mappingFunction)
- 9.V computeIfPresent(K key,BiFunction<? super K, ? super V, ? extends V> remappingFunction)
- 10.V compute(K key,BiFunction<? super K, ? super V, ? extends V> remappingFunction)
- 11.V merge(K key, V value,BiFunction<? super V, ? super V, ? extends V> remappingFunction)
1.V getOrDefault(Object key, V defaultValue)
default V getOrDefault(Object key, V defaultValue) {
V v;
return (((v = get(key)) != null) || containsKey(key))
? v
: defaultValue;
}
判断是否可以根据key获取value,获取不到返回传入的defaultValue,获取到了返回获取到的value
import java.util.HashMap;
import java.util.Map;
public class MapTest {
private static Map map;
//启动类,之后的示例就是调用对应的方法,故不再重复此方法
public static void main(String[] args) {
init();
getOrDefault();
}
//初始化map
private static void init() {
map = new HashMap(2);
map.put("key","value");
}
private static void getOrDefault() {
//map中存在key,返回value
System.out.println(map.getOrDefault("key", "new value"));
//清楚map中的元素
map.clear();
//此时map为空,返回new value
System.out.println(map.getOrDefault("key", "new value"));
}
}
2.void forEach(BiConsumer<? super K, ? super V> action)
default void forEach(BiConsumer<? super K, ? super V> action) {
Objects.requireNonNull(action);
for (Map.Entry<K, V> entry : entrySet()) {
K k;
V v;
try {
k = entry.getKey();
v = entry.getValue();
} catch(IllegalStateException ise) {
// this usually means the entry is no longer in the map.
throw new ConcurrentModificationException(ise);
}
action.accept(k, v);
}
}
遍历map,执行传入consumer的accept方法,注意入参,是(key,value)
private static void forEach() {
//对map的key和value进行打印
map.forEach((key,value)->{
System.out.println(key);
System.out.println(value);
});
}
3.V replace(K key, V value)
default V replace(K key, V value) {
V curValue;
if (((curValue = get(key)) != null) || containsKey(key)) {
curValue = put(key, value);
}
return curValue;
}
根据key,替换对应的value并且返回旧的value,如果不存在返回null
private static void replace(){
String oldValue = (String) map.replace("key", "replace value");
System.out.println(oldValue);
System