首页 Java Java HashMap computeIfAbsent()使用方法及示例代码

Java HashMap computeIfAbsent()使用方法及示例代码

publicVcomputeIfAbsent(Kkey,Function<?superK,?extendsV>remappingFunction)

参数

key:与值关联的键。
remappingFunction:对值进行操作的函数。

返回:此方法返回与指定键关联的当前(现有或计算)值,如果映射返回null,则返回null。

  • 如果此方法的映射函数返回null,则不记录映射。
  • 如果重映射函数抛出异常,则重新抛出异常,并不记录映射。
  • 在计算过程中,不允许使用此方法修改此映射。
  • 如果重映射函数在计算期间修改了此映射,则此方法将抛出ConcurrentModificationException。
import java.util.*; 
  
public >GFG { 
  
    // Main method 
    public static void main(String[] args) 
    { 
  

        Map<String, Integer> map = new Hashtable<>(); 
        map.put("Pen", 10); 
        map.put("Book", 500); 
        map.put("Clothes", 400); 
        map.put("Mobile", 5000); 
  
        System.out.println("hashTable: "
                           + map.toString()); 
  
        // 为缺少的新key提供值
        // 使用computeIfAbsent方法
        map.computeIfAbsent("newPen", k -> 600); 
        map.computeIfAbsent("newBook", k -> 800); 
         
        System.out.println("new hashTable: "
                           + map); 
    } 
} 

输出

hashTable:{Book=500,Mobile=5000,Pen=10,Clothes=400}
newhashTable:{newPen=600,Book=500,newBook=800,Mobile=5000,Pen=10,Clothes=400}

import java.util.*; 
  
public >GFG { 
  
    // Main method 
    public static void main(String[] args) 
    { 
  
        Map<Integer, String> map = new Hashtable<>(); 
        map.put(1, "100RS"); 
        map.put(2, "500RS"); 
        map.put(3, "1000RS"); 
  
        System.out.println("hashTable: "
                           + map.toString()); 
  
        // 不存在健值对的情况
        // 使用computeIfAbsent方法
        map.computeIfAbsent(4, k -> "600RS"); 
  
        // 如果存在不会有任何影响
        // key为1已经存在了 
        map.computeIfAbsent(1, k -> "800RS"); 
  
        System.out.println("new hashTable: "
                           + map); 
    } 
} 

输出

hashTable:{3=1000RS,2=500RS,1=100RS}
newhashTable:{4=600RS,3=1000RS,2=500RS,1=100RS}

特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。