• jdk8 StreamApi


     List<User> userList=new ArrayList<>();
            userList.add(User.builder().age(10).name("zhang").amount(BigDecimal.valueOf(10)).build());
            userList.add(User.builder().age(11).name("wang").amount(BigDecimal.valueOf(20)).build());
            userList.add(User.builder().age(12).name("li").amount(BigDecimal.valueOf(30)).build());
            userList.add(User.builder().age(13).name("zhao").amount(BigDecimal.valueOf(40)).build());
            userList.add(User.builder().age(14).name("sun").amount(BigDecimal.valueOf(50)).build());
            userList.add(User.builder().age(14).name("sun").amount(BigDecimal.valueOf(50)).build());
    
            log.info("所有人的年龄 求和={}",userList.stream().map(User::getAge).reduce((a,b)->a+b).get());
    
            log.info("最大值={}",userList.stream().max(Comparator.comparing(User::getAge)));
            log.info("总金额={}",userList.stream().map(User::getAmount).reduce(BigDecimal::add).get());
    
            long count=userList.stream().distinct().count();
            log.info("去重前={},去重后={}",userList.size(),count);
    
            // list 中所有的元素都满足条件 才为true
            log.info("完全匹配={}",userList.stream().allMatch(a -> a.getAge()==10 || a.getAge()==11
            ||a.getAge()==12 || a.getAge()==13 ||a.getAge()==14 ));
    
            // list 中任意一个元素满足条件 就为true
            log.info("任意匹配={}",userList.stream().anyMatch(a -> a.getAge()==13));
    
            log.info("过滤={}",userList.stream().filter(a -> a.getAmount().compareTo(BigDecimal.valueOf(30))>0).collect(Collectors.toList()));
    
            // 我执行了5次,都获取第一个元素
            log.info("任意获取元素 ={}",userList.stream().findAny().get());
    
            log.info("获取收割元素 ={}",userList.stream().findFirst().get());
    
            // 取出 list 中的list,Map<String,List> 一样
            List<List<User>>userList1 = new ArrayList<>();
            userList1.add(userList);
            List<User>l=userList1.stream().flatMap(list -> list.stream()).collect(Collectors.toList());
            log.info("flatMap ={}",l);
    
            // 截取前指定几个元素
            log.info("limit={}",userList.stream().limit(3).collect(Collectors.toList()));
    
            // 取出list中的int 属性,对属性进行 计算(平均值,求和,最大,最小 等 和其他计算)
            log.info("mapToInt={}",userList.stream().mapToInt(a -> a.getAge()).sum());
    
            log.info("剔除第几个元素={}",userList.stream().skip(1).collect(Collectors.toList()));
    
            log.info("正序排序={}",userList.stream().sorted(Comparator.comparingInt(User::getAge)).collect(Collectors.toList()));
            log.info("倒序排序={}",userList.stream().sorted(Comparator.comparingInt(User::getAge).reversed()).collect(Collectors.toList()));
  • 相关阅读:
    第五周:项目日记(3)
    第四周:项目日记(2)
    第三周:项目日记(1)
    需求获取常见的方法是进行客户访谈,结合你的实践谈谈会遇到什么问题,你是怎么解决的?
    面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。
    你认为一些军事方面的软件系统采用什么样的开发模型比较合适?
    第八周作业
    第七周作业
    当下大部分互联网创业公司为什么都愿意采用增量模型来做开发?
    第五周作业
  • 原文地址:https://www.cnblogs.com/zhangXingSheng/p/10743618.html
Copyright © 2020-2023  润新知