溫馨提示×

hashmap putifabsent和put區(qū)別詳解

小樊
154
2024-07-19 04:39:44
欄目: 編程語言

putIfAbsent和put都是用來向HashMap中添加元素的方法,但是它們之間有一些重要的區(qū)別。

  1. put方法是向HashMap中添加鍵值對的常用方法,如果指定的鍵已經(jīng)存在于HashMap中,則會更新該鍵對應(yīng)的值;如果鍵不存在,則會將該鍵值對添加到HashMap中。
HashMap<String, Integer> map = new HashMap<>();
map.put("key1", 1); //添加鍵值對"key1"->1
map.put("key1", 2); //更新鍵"key1"對應(yīng)的值為2
  1. putIfAbsent方法是在鍵不存在時才會向HashMap中添加鍵值對,如果指定的鍵已經(jīng)存在于HashMap中,則不做任何操作并返回原有的值。
HashMap<String, Integer> map = new HashMap<>();
map.put("key1", 1); 
Integer oldValue = map.putIfAbsent("key1", 2); //鍵"key1"已存在, oldValue為1
System.out.println(oldValue); //輸出1
  1. putIfAbsent方法可以避免因?yàn)殒I已存在而意外覆蓋原有值的情況,適用于需要確保某個鍵只有一個值的情況。
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方法適用于需要確保鍵不存在時才添加的場景。

0