putIfAbsent和put都是用來向HashMap中添加元素的方法,但是它們之間有一些重要的區(qū)別。
HashMap<String, Integer> map = new HashMap<>();
map.put("key1", 1); //添加鍵值對"key1"->1
map.put("key1", 2); //更新鍵"key1"對應(yīng)的值為2
HashMap<String, Integer> map = new HashMap<>();
map.put("key1", 1);
Integer oldValue = map.putIfAbsent("key1", 2); //鍵"key1"已存在, oldValue為1
System.out.println(oldValue); //輸出1
HashMap<String, List<Integer>> map = new HashMap<>();
map.putIfAbsent("key1", new ArrayList<>()); //如果鍵"key1"不存在,則添加一個空的ArrayList
map.get("key1").add(1); //向鍵"key1"對應(yīng)的List中添加元素1
總的來說,put方法適用于普通的添加和更新操作,而putIfAbsent方法適用于需要確保鍵不存在時才添加的場景。