JAVA8 Lambda 表达式使用心得

List<HashMap> 指定数据求和:  

   List<HashMap> kk = new ArrayList<>();
        Map mmm = new HashMap<>();
        mmm.put("a", 1);
        mmm.put("b", 4);
        kk.add((HashMap) mmm);
        Map mm = new HashMap<>();
        mm.put("a", 2);
        mm.put("b", 5);
        kk.add((HashMap) mm);
        bind.put("m", kk);

一        int i = (int) kk.stream().mapToInt((n)->Integer.parseInt(n.get("b").toString())).sum();
           System.out.print(i);

  心得: mapToInt()  字面意思

      n 遍历时 得到的HashMap 对象

      Integer.parseInt(n.get("b").toString())  求和前用于提取需要求和的数

二    Optional<HashMap> ii = kk.stream().reduce((n1,n2)->{n1.put("a", Integer.parseInt(n1.get("a").toString())+Integer.parseInt(n2.get("a").toString()));return n1;});
        System.out.print(ii.get().get("a"));

  心得:reduce() 用于操作数组的两个对象

       n1,n2  n1 第一次为数组的第一个对象,以后为上一次操作返回的结果,n2 为数组的下一个对象

       {n1.put("a", Integer.parseInt(n1.get("a").toString())+Integer.parseInt(n2.get("a").toString())) ; return n1 ; }  数据处理方式

     ii.get().get("a")  返回结果取值

posted on 2018-01-17 11:44  instr  阅读(161)  评论(0编辑  收藏  举报

导航