Java HashMap compute() 使用方法及示例

Java HashMap compute()方法计算一个新值,并将其与哈希映射中的指定键相关联。

compute()方法的语法为:

hashmap.compute(K key, BiFunction remappingFunction)

compute()参数

compute()方法有两个参数:key - 与计算值关联的键

remappingFunction- 为指定键计算新值的函数

注意:remappingFunction可以接受两个参数。

compute()返回值返回与键关联的新值

如果没有与键关联的值,则返回null

注意:如果remappingFunction结果为null,则将删除指定键的映射。

示例:HashMap compute()插入新值

示例

import java.util.HashMap;

class Main {

public static void main(String[] args) {

//创建 HashMap

HashMap prices = new HashMap<>();

//向HashMap插入条目

prices.put("Shoes", 200);

prices.put("Bag", 300);

prices.put("Pant", 150);

System.out.println("HashMap: " + prices);

//以10%的折扣重新计算鞋子的价格

int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100);

System.out.println("鞋折扣价: " + newPrice);

//打印更新的HashMap

System.out.println("更新后的 HashMap: " + prices);

}

}

输出结果HashMap: {Pant=150, Bag=300, Shoes=200}

鞋折扣价: 180

更新后的 HashMap: {Pant=150, Bag=300, Shoes=180

在上面的示例中,我们创建了一个名为prices的哈希映射。注意表达式

prices.compute("Shoes", (key, value) -> value - value * 10/100)

这里,(key, value) -> value - value * 10/100 -  这是一个lambda表达式。它将鞋的原价降低10%并返回。了解有关lambda表达式的更多信息,请访问Java Lambda 表达式。

prices.compute() - 将lambda表达式返回的新值与Shoes的映射相关联。

注意:根据Java的官方文档,HashMap merge()方法比compute()方法更简单。

推荐阅读

java散列法的运用实例,Java HashMap compute() 使用方法及示例相关推荐

  1. 哈希表(Hash Table)及散列法(Hashing)

    bigshuai 哈希 源地址 http://www.cnblogs.com/bigshuai/articles/2398116.html 哈希表(Hash Table)及散列法(Hashing) 数 ...

  2. 散列表相关题目(线性探测再散列法)

    散列表相关题目(线性探测再散列法) 一.题目 将关键字序列(7.8.30.11.18.9.14)散列存储到散列表中.散列表的存储空间是一个下标从0开始的一维数组,散列函数为H(key)=(key×3) ...

  3. hash table(全域散列法实现的哈希表)

    hash table(全域散列法实现的哈希表) 利用每次重建哈希表时随机生成散列函数 #ifndef C11LEARN_HASHUNIVERSAL_H #define C11LEARN_HASHUNI ...

  4. hash table(用乘法散列法实现)

    hash table(用乘法散列法实现) #ifndef C11LEARN_HASHMULTI_H #define C11LEARN_HASHMULTI_H #include "HashDi ...

  5. Hash-table(用除法散列法实现)

    Hash-table(用除法散列法实现) 关键字只支持int型,初学者版本 用链表解决冲突问题 #ifndef C11LEARN_HASHDIVISION_H #define C11LEARN_HAS ...

  6. c#加密:二、散列法 MD5、SHA256、SHA512

    散列法提供了一种单向加密的方式.这种方式非常适用于在数据库中存储密码.因为我们无须(也不希望)提供解密的信息.在登录验证时,只需简单地将用户的输入进行散列,并和数据库中存储的散列值进行比较即可. 由于 ...

  7. 数据结构记录--散列法实验

    Home Web Board ProblemSet Standing Status Statistics Problem A: 散列法的实验 Time Limit: 1 Sec  Memory Lim ...

  8. 散列(2)线性探测法和双重散列法

    接上篇 散列的简要描述和链地址法 解决散列冲突的方法: 1. 线性探测法 如果我们能够预测将要存入表中元素的数目,而且我们有足够的内存空间可以容纳带有空闲空间的所有关键字,那么使用链地址法是不值得的. ...

  9. 哈希(散列):(四)C语言实现 哈希 开散列法

    哈希(散列)的概念: https://blog.csdn.net/mowen_mowen/article/details/82943192 C语言实现:静态哈希表: https://blog.csdn ...

最新文章

  1. SpringBoot第十五篇:Springboot整合RabbitMQ
  2. Gartner重磅发布近40页PPT,详解2017年十大战略技术趋势
  3. golang 正则 校验 字符串
  4. 使Element默认字体为中文
  5. profiler分析器——R语言
  6. SharePoint网站集备份与恢复
  7. 企业管理器控制台本地无法访问
  8. 浅谈tcpwrapper的基本使用方法
  9. php面向对象特性(一)
  10. Mac 升级 catalina 后无法创建文件,Read-only file system
  11. mysql8.0升级_MySql版本升级(8.0.19升级到8.0.22)
  12. 家庭电信网弄外网唤醒并远程内网电脑
  13. 论合同管理的现状、发展趋势及重要性
  14. windows服务器虚拟机 全屏,win7虚拟机的安装|vmware中win7虚拟机怎么设置全屏显示...
  15. SPI 接口OLED 模块 - 兼容5V 和3.3V 电平
  16. TimeWheel时间轮算法原理及实现(附源码)
  17. 下载微信公众号或订阅号的文章封面图片
  18. 计算机培训教案入门,计算机二级学习基础PPT学习教案.pptx
  19. oracle迁移几种方式,Oracle数据库迁移的几种方式
  20. 通达信指标加密保护方法

热门文章

  1. ps作业素材和成品_没有用过PS的画框工具,你还敢说你是设计大佬?
  2. php spry文本域_《PHP和MySQL Web 开发》第8章 设计Web数据库
  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(92)-打印EasyUI 的datagrid表格
  4. poj 3728 Catch That Cow ([kuangbin带你飞]专题一 简单搜索)
  5. RocketMQ 使用及常见问题
  6. The mook jong 计数DP
  7. POJ 1195 Mobile phones【 二维树状数组 】
  8. poj 2051 Argus(优先队列)
  9. jQuery 学习笔记(jQuery: The Return Flight)
  10. WPF 分页控件应用