1.关于computelfAbsent的介绍
方法原型
public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction
方法介绍
如果在map中key没有映射值或者映射值为null,则将key进行映射并放到map中,并将需要映射的内容放到key所映射到的空间中。另外,如果key对应的映射内容为一个集合,那么其后面可以继续跟函数add()并将add中的内容添到key映射到的内存空间中。如果key已经映射则直接将add中的内容添到所在空间中。
举例
例1
HashMap<Integer, Integer> hashmap=new HashMap<Integer, Integer>();
hashmap.computeIfAbsent(10, key->new Integer(7));
例2
HashMap<Integer, ArrayList<Integer>> hashmap=new HashMap<Integer, ArrayList<Integer>>();
hashmap.computeIfAbsent(10, key->new ArrayList<Integer>()).add(3);
hashmap.computeIfAbsent(10, key->new ArrayList<Integer>()).add(4);
2.关于getOrDefault方法
方法原型
default V getOrDefault(Object key, V defaultValue)
方法介绍
如果在map中存在key值则返回key对应的映射中的内容,否则返回指定的内容。
举例
例1
HashMap<Integer, Integer> hashmap=new HashMap<Integer, Integer>();
hashmap.computeIfAbsent(10, key->new Integer(7));
int test1=hashmap.getOrDefault(10, 8);
int test2=hashmap.getOrDefault(11, 8);
其中test1结果7,test2结果为8。