put与putIfAbsent区别:
put在放入数据时,如果放入数据的key已经存在与Map中,最后放入的数据会覆盖之前存在的数据,
而putIfAbsent在放入数据时,如果存在重复的key,那么putIfAbsent不会放入值。
1.put
@Test
public void test3(){
Map map = new HashMap();
map.put(1, "AA");
map.put(2, "BB");
map.put(3, "CC");
map.put(1, "DD");
map.forEach((key, value) -> System.out.println(key + ":" + value));
}
2.putIfAbsent
putIfAbsent 如果传入key对应的value已经存在,就返回存在的value,不进行替换。如果不存在,就添加key和value,返回null
@Test
public void test3(){
Map map = new HashMap();
map.put(1, "AA");
map.put(2, "BB");
map.put(3, "CC");
Object obj = map.putIfAbsent(1, "EE");
System.out.println(obj);
map.forEach((key, value) -> System.out.println(key + ":" + value));
}