stream().reduce()和.map()

reduce()

reduce为终端操作,可以对中间操作筛选出来的流数据作出一系列的加减乘除等操作。

public class streamTest02 {
    public static void main(String[] args) {

        //stream流重载了reduce方法,含三个
        // 1.T reduce(T identity,BinaryOperator<T> accumulator)
        //参数一为累加器的函数的标识,参数二为函数(+,-,*,/)
        //2.Optional<T> reduce(BinaryOperator<T> accumulator)
        //3.<U> U reduce(U identity,BiFunction<U,? super T,U> accumulator,BinaryOperator<U> combiner)

        List<BigDecimal> list = new ArrayList<>();
        BigDecimal a = new BigDecimal("10");
        list.add(a);
        BigDecimal b = new BigDecimal("20");
        list.add(b);
        BigDecimal c = new BigDecimal("30");
        list.add(c);
        BigDecimal d = new BigDecimal("-10");
        list.add(d);

        //BigDecimal.ZERO为0,以0为底数和流里的每一个元素相加
        //求和
        BigDecimal result = list.stream().reduce(BigDecimal.ZERO, BigDecimal::add);//结果为50
        System.out.println(result);
        //亦可写作
        BigDecimal result1 = list.stream().reduce(BigDecimal.ZERO, (x,y) -> x.add(y));//结果为50
        System.out.println(result1);

        //求最大值
        Optional<BigDecimal> max = list.stream().reduce(BigDecimal::max);//结果为30
        System.out.println(max.get());

        //求最小值
        Optional<BigDecimal> min = list.stream().reduce(BigDecimal::min);//结果为-10
        System.out.println(min.get());

        //各项相乘
        Optional<BigDecimal> mu = list.stream().reduce(BigDecimal::multiply);//结果为-60000
        System.out.println(mu.get());
    }
}

map()

提取List对象的某一列值及排重
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值