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中。

  • 相关阅读:
    Java类型转换.
    搭建jenkins集群node结点
    java Lambda
    @Autowired使用说明
    Disruptor底层实现讲解与RingBuffer数据结构讲解
    Disruptor并发框架简介
    并发编程中的读写锁分离锁的使用
    并发编程过程中的重入锁
    互联网进行限流策略的Semaphore信号量使用
    并发编程中Future和Callable使用
  • 原文地址:https://www.cnblogs.com/liyafei/p/9232437.html
Copyright © 2011-2022 走看看