zoukankan      html  css  js  c++  java
  • 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); //3
                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);  //2
                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中。

  • 相关阅读:
    php字符串截取
    Linux配置网络
    Linux FTP服务
    linux复习一
    解决phpcms V9整合discuz! X3.0后,在phpcms新注册用户需要在discuz激活的问题
    Discuz整合ECShop同步登出的问题解决
    Validator表单验证类
    JAVA学习之疯狂JAVA讲义知识分享
    Android中View绘制流程以及invalidate()等相关方法分析
    Android View的生命周期详解
  • 原文地址:https://www.cnblogs.com/liyafei/p/9232437.html
Copyright © 2011-2022 走看看