lambda表达式常用基础操作 朱雀 2021-12-24 01:01 173阅读 0赞 List<Goods> list = Arrays.asList( new Goods(1, "苹果", 15), new Goods(2, "香蕉", 20), new Goods(3, "橘子", 10), null, new Goods(5,"",null)); list.forEach(e-> System.out.println(e)); System.out.println("*****************************"); //过滤空数据 list=list.stream().filter(Objects::nonNull).filter(p->Objects.nonNull(p.getPrice())).collect(Collectors.toList()); list.forEach(e-> System.out.println(e)); System.out.println("*****************************"); //过滤、排序、限制返回数量 List<Goods> collect = list.stream().filter(g -> g.getPrice() > 10).sorted((g2, g1) -> g1.getPrice() - g2.getPrice()) // .forEach(System.out::println); .limit(1) .collect(Collectors.toList()); System.out.println(collect); System.out.println("****************************"); //最大值最小值 Goods goods = list.stream().max((p1, p2) -> p1.getPrice() - p2.getPrice()).get(); System.out.println("max:"+goods); Goods min = list.stream().min((p1, p2) -> p1.getPrice() - p2.getPrice()).get(); System.out.println("min:"+min); System.out.println("******************************"); //把流转为数据 String collect1 = list.stream().map(Goods::getName).collect(Collectors.joining("-")); System.out.println(collect1); System.out.println("******************************"); //数据统计 IntSummaryStatistics ss = list.stream().mapToInt(Goods::getPrice).summaryStatistics(); System.out.println("sum:"+ss.getSum()); System.out.println("avg:"+ss.getAverage()); System.out.println("count:"+ss.getCount()); System.out.println("max:"+ss.getMax()); System.out.println("min:"+ss.getMin());
还没有评论,来说两句吧...