Java8中关于map中computeIfAbsent以及getOrDefault方法简介

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值