public V computeIfAbsent(K key, Function super K,? extends V> mappingFunction)
如果 key 对应的 value 不存在,则使用获取 mappingFunction 计算后的值,并保存为该 key 的 value,否则返回 value。
import java.util.HashMap; HashMaphashmap=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 对应的映射中的内容,否则返回指定的内容。
HashMaphashmap=new HashMap (); // 不存在 key 值,取 8,同时 key 赋值 8 int test = hashmap.computeIfAbsent(10, key->Integer.valueOf(8)); int test2=hashmap.getOrDefault(11, 8); // 不存在 key 值,取 8,不赋值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)