java hashtable 修改_Java Hashtable computeIfAbsent()用法及代码示例
Hashtable类的computeIfAbsent(Key,Function)方法,如果key尚未与某个值关联(或映射为null),则该方法允许您为指定的key计算映射值。
如果此方法的映射函数返回null,则不记录任何映射。
如果重新映射函数引发异常,则重新引发该异常,并且不记录任何映射。
在计算过程中,不允许使用此方法修改此Map。
如果重新映射函数在计算过程中修改了此映射,则此方法将引发ConcurrentModificationException。
用法:
public V
computeIfAbsent(K key,
Function super K, ? extends V> remappingFunction)
参数:此方法接受两个参数:
key:与值关联的键。
remappingFunction:用于对值进行运算的函数。
返回值:此方法返回与指定键关联的当前(现有的或计算的)值;如果映射返回null,则返回null。
异常:该方法抛出:
ConcurrentModificationException:如果检测到重新映射功能修改了此Map。
以下示例程序旨在说明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 table and add some values
Map table = new Hashtable<>();
table.put("Pen", 10);
table.put("Book", 500);
table.put("Clothes", 400);
table.put("Mobile", 5000);
// print map details
System.out.println("hashTable: "
+ table.toString());
// provide value for new key which is absent
// using computeIfAbsent method
table.computeIfAbsent("newPen", k -> 600);
table.computeIfAbsent("newBook", k -> 800);
// print new mapping
System.out.println("new hashTable: "
+ table);
}
}
输出:
hashTable: {Book=500, Mobile=5000, Pen=10, Clothes=400}
new hashTable: {newPen=600, Book=500, newBook=800, Mobile=5000, Pen=10, Clothes=400}
示例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 table and add some values
Map table = new Hashtable<>();
table.put(1, "100RS");
table.put(2, "500RS");
table.put(3, "1000RS");
// print map details
System.out.println("hashTable: "
+ table.toString());
// provide value for new key which is absent
// using computeIfAbsent method
table.computeIfAbsent(4, k -> "600RS");
// this will not effect anything
// because key 1 is present
table.computeIfAbsent(1, k -> "800RS");
// print new mapping
System.out.println("new hashTable: "
+ table);
}
}
输出:
hashTable: {3=1000RS, 2=500RS, 1=100RS}
new hashTable: {4=600RS, 3=1000RS, 2=500RS, 1=100RS}
参考:https://docs.oracle.com/javase/10/docs/api/java/util/Hashtable.html#computeIfAbsent(K,java.util.function.Function)
java hashtable 修改_Java Hashtable computeIfAbsent()用法及代码示例相关推荐
- java dictionary 实例化_Java Dictionary put()用法及代码示例
字典的put()方法用于在字典中插入映射.这意味着可以将特定键及其值映射到特定字典中. 用法: DICTIONARY.put(key, value) 参数:该方法有两个参数,都属于Dictionary ...
- java math.sin()_Java Math sin()用法及代码示例
java.lang.Math.sin()返回介于0.0和pi之间的角度的三角正弦.如果参数为NaN或无穷大,则结果为NaN.如果自变量为零,则结果为零,其符号与自变量相同.返回的值将在-1和1之间. ...
- java short字段_Java Field setShort()用法及代码示例
java.lang.reflect.Field的setShort()方法用于将字段的值设置为指定对象的缩写.当您需要将对象的字段值设置为短时,可以使用此方法在对象上设置值. 用法: public vo ...
- java boolean例子_Java Field setBoolean()用法及代码示例
java.lang.reflect.Field的setBoolean()方法用于将字段的值设置为指定对象上的布尔值.当需要将对象的字段的值设置为布尔值时,可以使用此方法在对象上设置值. 用法: pub ...
- java range对象_Java LocalTime range()用法及代码示例
LocalTime类的range()方法用于获取最小值和最大值形式的字段范围,并将该字段作为参数传递给此方法.此方法的返回值是该字段的ValueRange对象,并且该方法仅对LocalTime对象支持 ...
- java range(10)_Java Year range()用法及代码示例
Year类的range()方法用于获取最大值和最小值的字段范围,并将该字段作为参数传递给此方法.此方法的返回值是该字段的ValueRange对象,并且该方法仅对Year对象支持的那些字段返回Value ...
- java short 写法_Java Short longValue()用法及代码示例
Short类的java.lang.Short.longValue()方法是Java中的内置方法,用于将Short对象的值返回为long. 用法 ShortObject.longValue() 返回值: ...
- java scanner字符串_Java Scanner toString()用法及代码示例
java.util.Scanner类的toString()方法返回此Scanner的字符串表示形式.未指定确切的格式. 用法: public String toString() 返回值:此函数返回此扫 ...
- java compareandset 包_Java AtomicReferenceArray compareAndSet()用法及代码示例
如果AtomicReferenceArray对象的索引i处的当前值等于期望值,则使用AtomicReferenceArray类的compareAndSet()方法原子地将AtomicReference ...
- java 中negate()_Java BigInteger negate()用法及代码示例
先决条件:BigInteger基础 的java.math.BigInteger.negate()方法返回一个BigInteger,其值为(-this). negate()方法将更改BigInteger ...
最新文章
- 关于android相机开发中遇到的内存溢出的问题
- ASP.NET页面生命周期与应用程序生命周期
- iOS-NSThread编程详解
- UML轻松入门--类和对象
- C和指针之数组编程练习5 (矩阵相乘)
- 阿德莱德大学招聘博士后研究员
- 前途,路应该怎么走?
- ios弧形进度条_IOS贝塞尔曲线圆形进度条和加载动画-阿里云开发者社区
- 无法打开文件“libboost_system-vc110-mt-gd-x32-1_68.lib”
- 《构建之法》(第一、二、十六章)读书笔记
- python微信商城_GitHub - pythonsir/nideshop: NideShop 开源微信小程序商城服务端(Node.js + ThinkJS)...
- linux 内核 浮点运算,ARM64与x86_64浮点运算精度比较
- Touchgfx - 4 - Bitmap Cache
- 0基础学编程难吗?多久能学会?转行IT常见的4个问题
- 华为手机adb connect连接失败解决方案(转)
- 冯东阳:知名博主博客发软文广告,你怎么看?
- 《走进医学》 答案 +期末考试答案 2021年【完整/完结】
- 27.WLAN组网介绍_VLAN在WLAN业务中的应用
- ker矩阵是什么意思_如何理解正定矩阵和半正定矩阵
- 无所不在的JavaScript与物联网设备