码迷,mamicode.com
首页 > 其他好文 > 详细

归约和汇总

时间:2018-09-06 02:32:02      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:alt   class   mon   http   summary   连接字符串   oid   fish   bee   

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

 

技术分享图片

 

归约和汇总

标签:alt   class   mon   http   summary   连接字符串   oid   fish   bee   

原文地址:https://www.cnblogs.com/i-hard-working/p/9595465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!