java8工具类使用
1:map的使用
computeIfPresent ,如果键已经存在,将键和值作为参数传到函数式中,计算返回新的值
import java.util.HashMap;
import java.util.Map; /**
* @program: GradleTestUseSubModule
* @author: Yafei Li
* @create: 2018-06-27 09:18
**/
public class Test2 {
public static void main(String[] args){
Map<Integer,String> map = new HashMap<>(); map.putIfAbsent(3, "hi"); map.computeIfPresent(3, (num, val) -> { //如果存在键3,将键num(3)和键对应的值val作为参数传入。 num是键, val是键对应的值
System.out.println(num); //
System.out.println(val); //hi
return val + num; //返回的对象作为新值
});
String s = map.get(3);
System.out.println(s); //hi3 }
}
2:computeIfAbsent 如果不存在改键,将键作为参数传入到函数式,返回一个该键对应的值。
map.computeIfAbsent(2, (key)->{
System.out.println(key); //
return key+"hello";
});
3:computeIfPresent 计算过后,返回值为该键对应的值,可以在后面直接对该值操作
String set1 = map.computeIfPresent(key, (val, set) -> {
return set+"hello";
});
4:merge
import java.util.HashMap;
import java.util.Map; /**
* @program: GradleTestUseSubModule
* @author: Yafei Li
* @create: 2018-06-27 09:34
**/
public class Test3 {
public static void main(String[] args){
Map<Integer,String> map = new HashMap<>();
map.merge(9, "val9", (value, newValue) -> {
System.out.println(value); //不输出,因为键值不存在,不进行计算
System.out.println(newValue);
value.concat(newValue);
return value;
});
String s = map.get(9);// val9
System.out.println(s);
map.merge(9, "val9", (value, newValue) -> {
System.out.println("value: "+value);
System.out.println("newValue: "+newValue);
value.concat(newValue);
return value;
});
map.get(9);
System.out.println(s); /**结果
val9
value: val9
newValue: val9
val9
*/ }
}
Merge做的事情是如果键名不存在则插入,否则则对原键对应的值做合并操作并重新插入到map中。
java8工具类使用的更多相关文章
- JAVA8的LocalDateTime使用心得和工具类
今天做不成的事,明天也不会做好. 同学们,JAVA8出了这么久,不知道你们有没有用过它的LocalDateTime类型,还是依然用Date类型呢?其实,LocalDateTime类型给我们提供了很多便 ...
- 基于Java8的日期时间工具类DateTimeFormatter
原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...
- Java8中的LocalDateTime工具类
网上搜索了半天都没有找到Java8的LocalDateTime的工具类,只好自己写了一个,常用功能基本都有.还在用Date的Java同道该换换了. 个人项目地址:https://github.com/ ...
- Java8集合框架——集合工具类Arrays内部方法浅析
java.util.Arrays 备注:本文只对 Java8 中的 java.util.Arrays 中提供的基本功能进行大致介绍,并没有对其具体的实现原理进行深入的探讨和分析.详情可自己深入观摩源码 ...
- Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,
Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在Java 8 ...
- java8时间类API安全问题(赠送新的时间工具类哟)
LocalDateTime等新出的日期类全是final修饰的类,不能被继承,且对应的日期变量都是final修饰的,也就是不可变类.赋值一次后就不可变,不存在多线程数据问题. simpleDateFor ...
- java8时间工具类Localdate、LocaldateTime
优点: 1.方便. Date 只能是日期加时间的格式,而 LocalDate .LocalTime.LocalDateTime 分别代表日期,时间,日期+时间,非常灵活.再就是后者在日期计算及格式化方 ...
- 开始使用 java8 的日期工具类
例如,现有的类(例如java.util.Date和SimpleDateFormatter)不是线程安全的,这会导致用户潜在的并发问题.而新的LocalDate.LocalDateTime.DateTi ...
- Java程序员的日常—— Arrays工具类的使用
这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...
随机推荐
- easyui------dialog如何固定位置
转载: http://blog.csdn.net/dhdhdh0920/article/details/7438272 代var default_left; var default_top; $('# ...
- Python 使用正则表达式匹配URL网址
使用正则表达式匹配以 .com 或 .cn 为域名后缀的URL地址 In [1]: import re In [2]: str = "http://www.baidu.com/" ...
- __declspec的用法
__declspec用于指定所给定类型的实例与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展 ...
- 如何使用微信小程序制作banner轮播图?
在前端工程师的工作中,banner是必不可少的,那缺少了DOM的小程序是如何实现banner图的呢?如同其他的框架封装了不同的banner图的方法,小程序也封装了banner的方法,来让我一一道来: ...
- Objective-C中的KVC与KVO(上)
本文转载 李朴之先生博客 http://blog.csdn.net/pucker/article/details/7413280 Objective-C中的KVC与KVO是两种比较重要的技术,这里简要 ...
- Linux学习——自定义shell终端提示符
转自:here 我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入 ...
- Docker源码分析(一):Docker架构
1 背景 1.1 Docker简介 Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议.目前,Docker可以在容器内 ...
- jQuery的一些小技巧()
1.判断某元素上是否绑定了某种类型的事件 var $events = $("#foo").data("events"); if( $events &&a ...
- serializeArray()与serialize()的区别
serialize()序列化表单元素为字符串,用于 Ajax 请求. serializeArray()序列化表单元素为JSON数据. <script type="text/javasc ...
- js 生成二维码图片
1.用纯JavaScript实现的微信二维码图片生成器 QRCode.js是javascript实现二维码(QRCode)制作生成库. QRCode.js有着良好的跨浏览器兼容性(高版本使用HTML5 ...