put与putIfAbsent区别:
put在放入数据时,如果放入数据的key已经存在与Map中,最后放入的数据会覆盖之前存在的数据,
而putIfAbsent在放入数据时,如果存在重复的key,那么putIfAbsent不会放入值。
putIfAbsent 如果传入key对应的value已经存在,就返回存在的value,不进行替换。如果不存在,就添加key和value,返回null。
/**
* put
*/
Map<Integer,String> map = new HashMap<>();
map.put(1,"ZhangSan");
map.put(2,"LiSi");
map.put(1,"WangWu");
map.forEach((key,value) ->{
System.out.println("key : " + key + " , value : " + value);
});
/**
* putIfAbsent
*/
Map<Integer,String> putIfAbsentMap = new HashMap<>();
putIfAbsentMap.put(1,"张三");
putIfAbsentMap.put(2,"李四");
putIfAbsentMap.put(1,"王五");
putIfAbsentMap.forEach((key,value) ->{
System.out.println("key : " + key + " , value : " + value);
});