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);
    

  • 相关阅读:
    input 去除边框
    分页封装
    python后端继承序列化,不同访问形式返回不同结果
    解决vue前端不显示自定义字段
    Vue 获取后端多对多关联表信息
    vue 前段增删改查代码规范
    前段增删改查的应用
    ant-design-vue基础
    python 后端 数据库的创表及增删改查 简单使用
    配置Uwsgi+Nginx+Django+Vue
  • 原文地址:https://www.cnblogs.com/i-hard-working/p/9595465.html
Copyright © 2011-2022 走看看