zoukankan      html  css  js  c++  java
  • 归约和汇总

    1. 查找流中的最大值和最小值:

    package com.ant.jdk8.chap06;
    
    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.List;
    import java.util.stream.Collectors;
    
    public class MaxByMinByDemo {
        public static void main(String[] args) {
            List<Dish> menu = Arrays.asList(
                    new Dish("pork", false, 800, Type.MEAT),
                    new Dish("beef", false, 700, Type.MEAT),
                    new Dish("chicken", false, 400, Type.MEAT),
                    new Dish("french fries", true, 530, Type.OTHER),
                    new Dish("rice", true, 350, Type.OTHER),
                    new Dish("season fruit", true, 120, Type.OTHER),
                    new Dish("pizza", true, 550, Type.OTHER),
                    new Dish("prawns", false, 300, Type.FISH),
                    new Dish("salmon", false, 450, Type.FISH) );
            menu.stream()
                    .collect(Collectors.maxBy(Comparator.comparingInt(Dish::getCalories)))
                    .ifPresent(d-> System.out.println(d.getCalories()+"->"+d.getName()));
        }
    }
    

    2. 汇总:

    int totalCalories = menu.stream().collect(Collectors.summingInt(Dish::getCalories));
    System.out.println("totalCalories:"+totalCalories);
    

    IntSummaryStatistics menuStatistics = menu.stream().collect(Collectors.summarizingInt(Dish::getCalories));
    System.out.println(menuStatistics);
    

    3. 连接字符串:

    String menuStr = menu.stream().map(Dish::getName).collect(Collectors.joining(", "));
    System.out.println(menuStr);

    4. 广义的归约汇总:

    int totalCalories1 = menu.stream().collect(Collectors.reducing(0,Dish::getCalories,Integer::sum));
    int totalCalories2 = menu.stream().map(Dish::getCalories).reduce(Integer::sum).get();
    int totalCalories3 = menu.stream().mapToInt(Dish::getCalories).sum();
    System.out.println(totalCalories1+","+totalCalories2+","+totalCalories3);
    

  • 相关阅读:
    Django和flask中使用原生SQL方法
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in
    Docker常用命令
    MySQL的压力测试
    使用docker-compose快速搭建PHP开发环境
    Docke如何配置Nginx和PHP
    Docker容器的重命名和自动重启
    docker部署MySQL、Redis和Nginx
    docker-compose的安装卸载以及如何使用
    docker如何制作自己的镜像
  • 原文地址:https://www.cnblogs.com/i-hard-working/p/9595465.html
Copyright © 2011-2022 走看看