Java8新特性之Reduce练习抒写笔记

博客介绍了Java中reduce归约操作,它是函数依次作用于上一次函数结果(有初始值则第一次为初始值)和流中的下一个元素。还给出了操作代码及结果,此篇是Java8新特性之Streams练习笔记的后续。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 简介:

reduce–归约操作,函数依次作用于上一次函数的结果(有初始值则第一次为初始值)和流中的下一个元素
例如:
在这里插入图片描述

二. 操作:

  1. 代码:

    	package com.chengxi.java_new_characteristics.stream;
    	
    	import java.util.Optional;
    	import java.util.stream.Stream;
    	
    	/**
    	 * @author chengxi
    	 * @date 2019/5/5 15:30
    	 */
    	public class StreamReduce {
    	
    	    public static void main(String[] args) {
    	        // 一个参数遍历求结果,这个参数是计算规则
    	        Optional<Integer> reduce = Stream.of(1, 2, 3).reduce((x, m) -> x += m);
    	        System.out.println(reduce);
    	
    	        // 两个参数,新加的第一个参数是初始值
    	        System.out.println(Stream.of(1,2,34,1).reduce(100,(x,y) -> x+= y));
    	
    	        // 求流中的最大值,如果给定初始值那么流中的比较带上初始值进行比较,第二种是简写,其中的integer取得是前面流中默认的数字,引用获取求值方法
    	        System.out.println("Max: "+Stream.of(1,2,34,1).reduce(100,(x,y) -> Math.max(x,y)));
    	        System.out.println("Max: "+Stream.of(1,2,34,1).reduce(Integer::max));
    	
    	        // 求最小值
    	        System.out.println("Max: "+Stream.of(1,2,34,1).reduce((x,y) -> Math.min(x,y)));
    	        System.out.println("Max: "+Stream.of(1,2,34,1).reduce(Integer::min));
    	
    	        // 求和,是第一个的简写
    	        System.out.println("sum:"+Stream.of(1,2,34,1).reduce(100,Integer::sum));
    	
    	        // 没有初始值求和
    	        System.out.println(Stream.of(1, 2, 34, 1).reduce(Integer::sum).orElse(0));
    	
    	
    	        // 使用Optional 类,Optional类是一个包装非空对象的容器类型。Optional对象使用缺失值表示null值,其表达的意思即为值有可能为null。意在在java系统中减少空指针异常。
    	        Optional<Integer> integer = Optional.of(1);
    	        Optional<String> s = Optional.of("2");
    	    }
    	
    	
    	}
    
  2. 结果:

    Optional[6]
    138
    Max: 100
    Max: Optional[34]
    Max: Optional[1]
    Max: Optional[1]
    sum:138
    38
    

小熙抒写的这篇Reduce是承接上篇Java8新特性之Streams练习抒写笔记的后续,个人摸索难免出错,欢迎联系指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值