java putifabsent_java8中Map的一些骚操作总结

2fdcc75eeeb0c8fcc46132fa9f53b255.png

一 前言

本篇内容是关于 map 新特性的一些方法使用上的介绍,如果有不足之处欢迎补充!!

二 map新特性

关于以下函数式编程的函数的计算知识追寻者都使用 简单字符串代替了,参数无非就是Key,value;

2.1 forEach

forEach迭代,相当于for循环

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key1","小熊猫");

hashMap.put("key2","大熊猫");

// 遍历

hashMap.forEach((key,value) -> {

System.out.println("key:"+key + " value: "+value);

});

}

输出

key:key1 value: 小熊猫

key:key2 value: 大熊猫

2.2 computeIfAbsentjava

如果key的值不存在就使用函数结果代替;

值存在示例,任然是使用旧值;

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key","无墨生香");

// 如果key的值不存在就使用 函数值代替

hashMap.computeIfAbsent("key",s-> { return "处处香";});

// {key=无墨生香}

System.out.println(hashMap);

}

值不存在示例,会使用函数值代替为新值;

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

// 如果key的值不存在就使用 函数值代替

hashMap.computeIfAbsent("key",s-> { return "处处香";});

// {key=处处香}

System.out.println(hashMap);

}

2.3 computeIfPresent

如果key的值存在就使用函数值代替,如果 函数值为null , 会移除key;

值存在示例,会使用函数值代替旧值

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key","无墨生香");

// 如果key的值存在就使用函数值代替

hashMap.computeIfPresent("key",(key,value)-> { return "处处香";});

// {key4=处处香}

System.out.println(hashMap);

}

值不存在示例,为空

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

// 如果key的值存在就使用函数值代替

hashMap.computeIfPresent("key",(key,value)-> { return "处处香";});

// {}

System.out.println(hashMap);

}

如果 函数值为null , 会移除key;

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key","无墨生香");

// 如果key的值存在就使用函数值代替

hashMap.computeIfPresent("key",(key,value)-> { return null;});

// {}

System.out.println(hashMap);

}

2.4 putIfAbsent

当key的值存在时不替换值;当key的值不存在时替换key的值;

当key存在示例,还是旧值;

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key","无墨生香");

hashMap.putIfAbsent("key","处处香");

//{key=无墨生香}

System.out.println(hashMap);

}

当key不存在其实就是put操作;

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.putIfAbsent("key","处处香");

//{key=处处香}

System.out.println(hashMap);

}

2.5 getOrDefault

当key的值存在时获取值,否则获取指定的默认值;

key值存在示例

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key","无墨生香");

//无墨生香

System.out.println(hashMap.getOrDefault("key","处处香"));

}

key值不存在示例

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

//处处香

System.out.println(hashMap.getOrDefault("key","处处香"));

}

2.6 merge

如果key的值不存在会用新的值代替,如果key的值存在会用函数值代替旧值,当函数值为空会移除key;

如果key的值不存在会用新的值(第二参数)代替

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.merge("key","处处香",(key,value) -> { return "点击在看";});

//{key=处处香}

System.out.println(hashMap);

}

如果key的值存在会用函数值代替旧值;新的值(第二参数)不起作用

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key","无墨生香");

hashMap.merge("key","处处香",(key,value) -> { return "点击在看";});

//{key=点击在看}

System.out.println(hashMap);

}

当函数值为空会移除key;

public static void main(String[] args) {

HashMap hashMap = new HashMap<>();

hashMap.put("key","无墨生香");

hashMap.merge("key","处处香",(key,value) -> { return null;});

//{}

System.out.println(hashMap);

}

总结

到此这篇关于java8中Map的一些骚操作的文章就介绍到这了,更多相关java8中Map操作内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 注解 target_详解JDK 5 Annotation 注解之@Target的用法

前言目前&#xff0c;越来越多的架构设计在使用注解&#xff0c;例如spring3.0、struts2等框架。让我们先来看看注解的定义。如下是一段使用了JDK 5 Annotation Target的代码&#xff1a;Target({ElementType.METHOD})Retention(RetentionPolicy.RUNTIME)InheritedDocumentedpu…

pajek软件使用方法_使用Jco远程连接SAP软件系统方法

作者&#xff1a;JongWill声明&#xff1a;本文章仅用于SAP软件的应用与学习&#xff0c;不代表SAP公司。(注&#xff1a;文中所示截图来源SAP软件&#xff0c;相应著作权归SAP所有。)SAP公司的ERP系统是一套成熟的套装软件&#xff0c;它是博大精深的&#xff0c;但也不是无所…

镜像浏览器_害怕win10镜像有第三方软件,直接到微软官网下载,原汁原味

很多时候我们在网上下载的一些win10镜像ISO文件都包含有一些第三方的软件&#xff0c;虽然这都是网站为了盈利而不得不做的&#xff0c;但是辛苦下载安装好的windows系统&#xff0c;如果有乱七八糟的软件心里真的会非常不舒服&#xff0c;甚至以前电脑城的win7所谓正版光碟都是…

post大小限制_作为一个程序员,面试中常问的get和post的区别,你真的知道吗

作为一个程序员无论是搞前端的还是搞后端的&#xff0c;只要问起来GET和POST的区别&#xff0c;都能说出来个一二三四来。你可能自己写过无数个GET和POST请求&#xff0c;或者也看过很多权威网站总结出来的区别&#xff0c;你非常清楚的知道什么时候用GET什么时候用POST.当你在…

java static 修饰变量吗_Java面试 - static 修饰的变量和方法有哪些特点?

1、static修饰的变量和方法&#xff0c;在类加载时即被初始化&#xff0c;可直接通过类名.变量名和类型.方法名进行调用。2、static修饰的变量&#xff0c;在类加载时会被分配到数据区的方法区。类的实例可共享方法区中的变量。如果static修饰的变量发生改变&#xff0c;那么所…

安卓手机如何防盗_如何设置安卓手机各版本USB调试模式

关注我们&#xff0c;获得更多资讯在这篇教学中&#xff0c;小蛙会详细向大家讲解USB调试模式的开启及关闭方法&#xff0c;以及其用途。在这个过程中&#xff0c;由于Android 机型众多&#xff0c;所以无办法列举太多。但请相信小蛙&#xff0c;开启USB 调试的操作方法基本上是…

iphone同步助手_iPhone 与安卓手机之间如何进行资料迁移

​上一期我们介绍了 iPhone 之间和安卓手机之间如何备份和进行资料迁移&#xff0c;很多朋友都留言说想知道 iPhone 与安卓手机之间如何进行资料迁移&#xff0c;看来双十一大家都剁手换了手机啊&#xff0c;嘴上说着不要&#xff0c;到头来还是管不住自己的手。同操作系统的手…

当前记录集不支持更新_不断中招的你还放心升级win10吗?wi10近期更新问题及解决办法...

.专于心 精于形.Win10用户升级5月更新后屏幕出现蓝绿伪影&#xff1a;或跟调节色温软件有关随着五月更新升级范围的扩大&#xff0c;一些问题也是加速展现在微软面前。现在&#xff0c;有不少Windows 10用户反馈称&#xff0c;自己升级至五月更新后&#xff0c;屏幕出现了蓝绿伪…

易班自动答题脚本_如何使用python进行自动网上考试

前言文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者&#xff1a; HIS HackerPS&#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun背景说明在github上发现一…

两个子集pom互相调用_声明式服务调用组件Feign

什么是Feign&#xff1f; Feign是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端。Feign内置了Ribbon&#xff0c;用来做客户端负载均衡&#xff0c;去调用服务注册中心的服务。什么是OpenFeign&#xff1f;OpenFeign是SpringCloud在Feign的基础上支持了SpringMVC的…

安卓手机主题软件_安卓手机安装不了软件原因和方法

安卓手机不能安装软件其实有很多的原因&#xff0c;排除可以避免的原因(google授权)&#xff0c;其他的硬件设施的支持&#xff0c;也可能出现软件不能安装的现象。有的是可以解决的&#xff0c;但有的是强制性原因&#xff0c;那就没有办法了。下面就来分析下软件不能安装的几…

excel插入页码_Excel里毫不起眼的页眉页脚,居然有这3种高能用法!

点击上方蓝字关注星标★不迷路本文作者&#xff1a;小敏本文编辑&#xff1a;小叮一说到页眉页脚&#xff0c;你脑海中出现的&#xff0c;是不是这样一个画面&#xff1f;规规矩矩的页眉页脚&#xff0c;比如&#xff0c;公司 logo 或者文件名称放在页眉位置&#xff0c;底部加…

前端怎么获取cookie的值_京东购物小程序cookie方案实践(附Demo)

一、前言早期为了解决“会话保持”的需求&#xff0c;社区中出现了「cookie 方案」并最终成为 W3C 标准&#xff1a;当某个网站登录成功后&#xff0c;客户端(浏览器)收到一个 cookie 标识(文本)并保存下来&#xff0c;在后续请求中会自动带上这个字段&#xff0c;由此 Web 后台…

R 语言怎么保存工作目录到当前路径_【R语言基础】01.R语言软件环境搭建及常用操作...

一、R语言简介R语言是专业的统计分析软件&#xff0c;来自著名数据科学网站&#xff08;http://www.kdnuggets.com/&#xff09;发起的一个2019年统计分析和数据挖掘软件使用情况的调查结果&#xff1a;表明R语言是该领域近年来最受欢迎的软件之一。R语言的优势&#xff1a;(1)…

ssm java上传图片预览_ssm文件上传_上传图片

1、搭建好ssm框架2、导入文件上传所需依赖commons-fileuploadcommons-fileupload1.4commons-iocommons-io2.6commons-langcommons-lang2.63、springmvc的xml文件中配置文件所需的类4、jsp界面对应其次第二个文件上传对应的就是第二个div里面的内容4、form表单配置注意&#xff…

平台允许同时在线人数 显示_12万人同时在线,游戏未正式发售,国产“糖豆人”已诞生?...

《派对动物》目前在Steam平台上开启了试玩阶段&#xff0c;游戏离正式发行还有一段时间。这款游戏适合多人作战&#xff0c;正如它的名字一样《派对动物》。不过从游戏角色的形象设定上来看&#xff0c;有一些像学龄前儿童喜爱的动画片&#xff0c;因此并没有人给这部游戏太多的…

feign post 传递空值_听我讲完GET、POST原理,面试官给我倒了杯卡布奇诺

文章来源&#xff1a;听我讲完GET、POST原理&#xff0c;面试官给我倒了杯卡布奇诺原文作者&#xff1a;陈哈哈来源平台&#xff1a;CSDN我有一个老朋友&#xff0c;我们叫他熊猫。发际线及将触碰到后脑勺&#xff0c;大框金丝眼镜也掩盖不住那黝黑的眼圈&#xff0c;显得格外的…

java必知必会_Java构造器必知必会

在面向对象编程中&#xff0c;编程人员应该在意“资源”。比如String hello "hello"&#xff1b;在代码中&#xff0c;我们很在意在内存中String类型的hello&#xff0c;它是有一个生命周期的。在它生命周期中&#xff0c;初始化(initialization)和清理(cleanup)是两…

post 请求 argument type mismatch_Flask-RESTful 请求解析

一、基本参数from flask.ext.restful import reqparseparser reqparse.RequestParser()parser.add_argument(rate, typeint, helpRate cannot be converted)parser.add_argument(name, typestr)args parser.parse_args()二、必需的参数parser.add_argument(name, typestr, re…

易语言单窗口单ip软件源码_梦幻西游怎样多开ip转金?十大攻略秘籍速来看

各位好&#xff01;&#xff0c;我依然是小芝麻&#xff0c;近期几日总是有盆友在私聊我&#xff0c;“小芝麻看着你的转金专缉&#xff0c;那么多方式&#xff0c;能够 帮我建议一类&#xff0c;最安全可靠能用的吗&#xff1f;”“小芝麻&#xff0c;你的转金攻略大全&#x…