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工具类使用的更多相关文章

  1. JAVA8的LocalDateTime使用心得和工具类

    今天做不成的事,明天也不会做好. 同学们,JAVA8出了这么久,不知道你们有没有用过它的LocalDateTime类型,还是依然用Date类型呢?其实,LocalDateTime类型给我们提供了很多便 ...

  2. 基于Java8的日期时间工具类DateTimeFormatter

    原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...

  3. Java8中的LocalDateTime工具类

    网上搜索了半天都没有找到Java8的LocalDateTime的工具类,只好自己写了一个,常用功能基本都有.还在用Date的Java同道该换换了. 个人项目地址:https://github.com/ ...

  4. Java8集合框架——集合工具类Arrays内部方法浅析

    java.util.Arrays 备注:本文只对 Java8 中的 java.util.Arrays 中提供的基本功能进行大致介绍,并没有对其具体的实现原理进行深入的探讨和分析.详情可自己深入观摩源码 ...

  5. Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,

    Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在Java 8 ...

  6. java8时间类API安全问题(赠送新的时间工具类哟)

    LocalDateTime等新出的日期类全是final修饰的类,不能被继承,且对应的日期变量都是final修饰的,也就是不可变类.赋值一次后就不可变,不存在多线程数据问题. simpleDateFor ...

  7. java8时间工具类Localdate、LocaldateTime

    优点: 1.方便. Date 只能是日期加时间的格式,而 LocalDate .LocalTime.LocalDateTime 分别代表日期,时间,日期+时间,非常灵活.再就是后者在日期计算及格式化方 ...

  8. 开始使用 java8 的日期工具类

    例如,现有的类(例如java.util.Date和SimpleDateFormatter)不是线程安全的,这会导致用户潜在的并发问题.而新的LocalDate.LocalDateTime.DateTi ...

  9. Java程序员的日常—— Arrays工具类的使用

    这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...

随机推荐

  1. PL/SQL如何调试Oracle存储过程

    from:http://jingyan.baidu.com/article/3a2f7c2e144d2826aed61167.html 调试过程对找到一个存过的bug或错误是非常重要的,Oracle作 ...

  2. XML高速入门

    XML是什么 Extensible Markup Language 自己定义标签: 用来数据传输: 可扩展标记语言,是一种类似超文本标记语言的标记语言. 与HTML的比較: 1.不是用来替代HTML的 ...

  3. 关于直播学习笔记-005-nginx-rtmp-win32在Win10上使用

    在Win10上使用nginx-rtmp-win32会提示文件路径问题. 可以将nginx-rtmp-win32拷贝到用户目录文件夹之中. 在命令行中执行nginx.exe程序

  4. 从spring容器中取出注入的bean

    从spring容器中取出注入的bean 工具类,代码如下: package com.hyzn.fw.util; import org.springframework.beans.BeansExcept ...

  5. Linux mysqladmin 命令

    mysqladmin命令可以用来设置或修改 MySQL 密码,常见用法如下: [root@localhost ~]$ mysqladmin -uroot password 'newPass' # 在无 ...

  6. Python 数据类型:字符串

    一.字符串介绍 字符串是由单引号/双引号/三引号引起来的,由字母 .数字或符号等构成的一串字符 In [1]: name = "Tom" # 定义字符串 In [2]: type( ...

  7. Android 按钮 Button和ImageButton

    Button -- 按钮ImageButton -- 图片按钮Button和ImageButton特征1.共有的特征都可以作为一个按钮产生点击事件2.不同点: (1)Button有text属性,Ima ...

  8. 给大家推荐一个好的android模拟器genymotion,非常流畅,跟真机差不多

    http://www.genymotion.cn/这里是下载地址, 下载的时候会要求输入邮箱并注册,这个邮箱尽量用网易这类的邮箱,我试过qq邮箱无法收到验证邮件, 程序下载安装完成后,打开客户端选择设 ...

  9. parseInt()解析整数与parsetFloat()解析浮点数

    1.parseInt(string,radix) 解析整数 parseInt("dgei23"); // NaN parseInt("3 blind mice" ...

  10. 【BZOJ4429】[Nwerc2015] Elementary Math小学数学 最大流

    [BZOJ4429][Nwerc2015] Elementary Math小学数学 Description Ellen给她的学生教小学数学.期末考试已经来临了.考试有n个题目,每一个题目学生们都要对一 ...