當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java HashMap computeIfAbsent()用法及代碼示例


HashMap類的computeIfAbsent(Key,Function)方法用於使用給定的映射函數來計算給定鍵的值(如果鍵尚未與某個值關聯(或映射為null),然後在Hashmap中輸入該計算值)空值。

  • 如果此方法的映射函數返回null,則不會為該鍵記錄任何映射。
  • 在計算時,如果重新映射函數引發異常,則重新引發該異常,並且不記錄任何映射。
  • 在計算過程中,不允許使用此方法修改此Map。
  • 如果重新映射函數在計算過程中修改了此映射,則此方法將引發ConcurrentModificationException。

用法:

public V 
       computeIfAbsent(K key,
             Function<? super K, ? extends V> remappingFunction)

參數:此方法接受兩個參數:


  • key:我們要使用映射為其計算值的鍵。
  • remappingFunction:用於對值進行運算的函數。

返回值:此方法返回與指定鍵關聯的當前(現有的或計算的)值;如果映射返回null,則返回null。

以下示例程序旨在說明computeIfAbsent(Key,Function)方法:

示例1:

// Java program to demonstrate 
// computeIfAbsent(Key, Function) method. 
  
import java.util.*; 
  
public class GFG { 
  
    // Main method 
    public static void main(String[] args) 
    { 
  
        // create a HashMap and add some values 
        HashMap<String, Integer> map 
            = new HashMap<>(); 
        map.put("key1", 10000); 
        map.put("key2", 55000); 
        map.put("key3", 44300); 
        map.put("key4", 53200); 
  
        // print map details 
        System.out.println("HashMap:\n "
                           + map.toString()); 
  
        // provide value for new key which is absent 
        // using computeIfAbsent method 
        map.computeIfAbsent("key5", 
                            k -> 2000 + 33000); 
        map.computeIfAbsent("key6", 
                            k -> 2000 * 34); 
  
        // print new mapping 
        System.out.println("New HashMap:\n "
                           + map); 
    } 
}
輸出:
HashMap:
 {key1=10000, key2=55000, key3=44300, key4=53200}
New HashMap:
 {key1=10000, key2=55000, key5=35000, key6=68000, key3=44300, key4=53200}

示例2:

// Java program to demonstrate 
// computeIfAbsent(Key, Function) method. 
  
import java.util.*; 
  
public class GFG { 
  
    // Main method 
    public static void main(String[] args) 
    { 
  
        // create a HashMap and add some values 
        HashMap<Integer, String> 
            map = new HashMap<>(); 
        map.put(10, "Aman"); 
        map.put(20, "Suraj"); 
        map.put(30, "Harsh"); 
  
        // print map details 
        System.out.println("HashMap:\n"
                           + map.toString()); 
  
        // provide value for new key which is absent 
        // using computeIfAbsent method 
        map.computeIfAbsent(40, k -> "Sanjeet"); 
  
        // this will not effect anything 
        // because key 1 is present 
        map.computeIfAbsent(10, k -> "Amarjit"); 
  
        // print new mapping 
        System.out.println("New HashMap:\n" + map); 
    } 
}
輸出:
HashMap:
{20=Suraj, 10=Aman, 30=Harsh}
New HashMap:
{20=Suraj, 40=Sanjeet, 10=Aman, 30=Harsh}

參考:https://docs.oracle.com/javase/10/docs/api/java/util/HashMap.html#computeIfAbsent(K,java.util.function.Function)



相關用法


注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 HashMap computeIfAbsent() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。