Map中put与putIfAbsent区别
在使用map这种数据类型的时候,你可能会遇到两种情况,
- 第一种:不管key存不存在,都要进行保存操作;
- 第二种:如果key已存在,则不进行保存;
那么有两个方法可以帮到你:
1. put: 如果key不存在,则保存,如果存在,则覆盖;
V put(K key, V value);
2. putIfAbsent: 如果key不存在,则保存,如果存在,则不进行操作;
default V putIfAbsent(K key, V value) {
V v = get(key);
if (v == null) {
v = put(key, value);
}
return v;
}
示例
@Test
public void testPut(){
Map<String, String> map = new HashMap<>();
map.put("name", "张三");
map.forEach( (key,value) -> {
System.out.println("初始值 : "+ key + ": " + value);
});
System.out.println("--------------------------------------------------");
map.put("name", "王五");
map.forEach( (key,value) -> {
System.out.println("put之后 : " + key + ": " + value);
});
System.out.println("--------------------------------------------------");
map.putIfAbsent("name", "赵六");
map.forEach( (key,value) -> {
System.out.println("接下来putIfAbsent之后 : " + key + ": " + value);
});
}