map.computeIfAbsent

map.computeIfAbsent,第1张

map.computeIfAbsent map.computeIfAbsent
public V computeIfAbsent(K key, Function mappingFunction)

如果 key 对应的 value 不存在,则使用获取 mappingFunction 计算后的值,并保存为该 key 的 value,否则返回 value。

import java.util.HashMap;

HashMap hashmap=new HashMap();
hashmap.computeIfAbsent(10, key->Integer.valueOf(7));

HashMap> hashmap=new HashMap>();
hashmap.computeIfAbsent(10, key->new ArrayList()).add(3);

HashMap prices = new HashMap<>();

prices.put("Shoes", 200);
prices.put("Bag", 300);
prices.put("Pant", 150);

// 计算 Shirt 的值
int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280);
// java8 之前。从 map 中根据 key 获取 value  *** 作可能会有下面的 *** 作
Object key = map.get("key");
if (key == null) {
    key = new Object();
    map.put("key", key);
}
// java8 lambda
Object key = map.computeIfAbsent("key", k -> new Object());
getOrDefault
default V getOrDefault(Object key, V defaultValue)

如果在 map 中存在 key 值则返回 key 对应的映射中的内容,否则返回指定的内容。

HashMap hashmap=new HashMap();
// 不存在 key 值,取 8,同时 key 赋值 8
int test = hashmap.computeIfAbsent(10, key->Integer.valueOf(8)); 
int test2=hashmap.getOrDefault(11, 8); // 不存在 key 值,取 8,不赋值。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5682314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存