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);
});
}

Map中put与putIfAbsent的区别
本文详细解析了Java中Map数据类型的两种保存方法:put和putIfAbsent的使用场景与区别。put方法会覆盖已存在的键值对,而putIfAbsent仅在键不存在时保存,避免重复。通过实例演示了两者的具体应用。
5604

被折叠的 条评论
为什么被折叠?



