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