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

  • 相关阅读:
    hdu 3336 Count the string KMP+DP优化
    Codeforces Round #345 (Div. 1) A. Watchmen 模拟加点
    Codeforces Round #345 (Div. 1) B. Image Preview
    大数据时代下EDM邮件营销的变革
    如何选择EDM电子邮件服务提供商
    一般邮件营销平台可以获取的三个参数
    EDM邮件营销真的落伍了吗?
    EDM概念之A/B分类测试法
    EDM营销技巧之如何进行用户唤醒
    如何优化电子邮件营销的效果
  • 原文地址:https://www.cnblogs.com/i-hard-working/p/9595465.html
Copyright © 2011-2022 走看看