putIfAbsent和put都是用来向HashMap中添加元素的方法,但是它们之间有一些重要的区别。
HashMap<String, Integer> map = new HashMap<>();
map.put("key1", 1); //添加键值对"key1"->1
map.put("key1", 2); //更新键"key1"对应的值为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"对应的List中添加元素1
总的来说,put方法适用于普通的添加和更新操作,而putIfAbsent方法适用于需要确保键不存在时才添加的场景。