Map新特性
在JDK8中Map接口提供了一些新的遍历的方法,因为在本文中所有Map方法都是以默认值方法的方式实现的,所以现有的Map接口的实现可以直接拥有这些在默认值方法中定义的默认行为,而不需要新增一行代码
先定义一个map,存一些值
Map<Integer, String> map = new HashMap<>(); map.put(1, "jack"); map.put(2, "Tom"); map.put(3, "lili");
getOrDefault(Object,V):如果拿不到,就给一个默认字符串
String value = map.getOrDefault(6, "null");
putIfAbsent(k,v):只会添加不存在相同的key值
String val = map.putIfAbsent(3, "vince");
remove(k,v):必须匹配键和值才能删除
map.remove(1, "vince");
replace(k,v,v):只有键和值都对时,才能替换值
map.replace(3,"lili","tom")
compute(K key,BiFunction<? super K,? super V,? extends V>remappingFunction):计算指定键的映射及其当前映射的值
map.compute(1, ((integer, s) -> s + "1"));
computeIfPresent(K key,BiFunction<? super K,? super V,? extends V>remappingFunction):如果指定的键尚未与值相关联,尝试使用给定的映射函数计算其值,将其输入到此映射中
map.computeIfAbsent(6, integer -> integer + "test");
merge(K key, V value,BiFunction< ? super V ,? super V,?extends V>remappingFunction):如果指定的键尚未与值相关联或与null相关联,则将其与给定的非空值关联
map.merge(1, "jack", (s, s2) -> s + s2);