Java 8 Guide E4

/ 技术笔记 / 0 条评论 / 273浏览

本篇接着上篇来, 继续学习java8新特性
Java 8 简明教程

Map

putIfAbsent

代码展示

Map<String, Object> hashMap = new LinkedHashMap<>();

hashMap.put("val_1", 1);
hashMap.put("val_2", 2L);
hashMap.put("val_3", null);


System.out.println(hashMap);

Object val_1 = hashMap.putIfAbsent("val_1", 111);
System.out.println(val_1);
Object val_3 = hashMap.putIfAbsent("val_3", 3);
System.out.println(val_3);
Object val_4 = hashMap.putIfAbsent("val_4", 4);
System.out.println(val_4);

System.out.println(hashMap);

输出: 
{val_1=1, val_2=2, val_3=null}
1
null
null
{val_1=1, val_2=2, val_3=3, val_4=4}

对比

在之前如果我们存储一个key时, 需要判断是否存在, 不存在时添加. 我们需要先判断再添加. 在jdk1.8之后, 我们只需要 putIfAbsent(k,v) 方法就可以完成.

if (!hashMap.containsKey("val_3")) {
    hashMap.put("val_3", "val_3");
}

方法详解