java lambda求和最值

Integer totalSeller = facilitatorVos.stream().map(FacilitatorVo::getSellerNum).reduce(0, Integer::sum);


BigDecimal totalTransaction = facilitatorVos.stream().map(FacilitatorVo::getTransactionAmount).reduce(new BigDecimal("0"), BigDecimal::add);


BigDecimal alipayTatal = listForTotal.stream().filter(v -> "支付宝".equals(v.getPayment())).map(ReportOrderInfoVO::getPayed).reduce(new BigDecimal("0"), BigDecimal::add);

int age = list.stream().reduce(0, (person1,person2)->person1.getAge()+person2.getAge());

更多

        cartVo.setCartProductVoList(cartProductVos);
        // 是否全选
        cartVo.setSelectAll(cartProductVos.stream().allMatch(CartProductVo::getProductSelected));
        // 总数量
        int sum = cartProductVos.stream().mapToInt(CartProductVo::getQuantity).sum();
        cartVo.setCartTotalQuantity(sum);
        // 总价格
        BigDecimal price = cartProductVos.stream().map(CartProductVo::getProductTotalPrice).reduce(new BigDecimal("0"), BigDecimal::add);
        cartVo.setCartTotalPrice(price);

求和

//总数量
		Long count = books.stream().collect(Collectors.counting());
		System.out.println(count);
		//平均值
		Double avg = books.stream().collect(Collectors.averagingDouble(Book::getPrice));
		System.out.println(avg);
		//总和
		Double sum = books.stream().collect(Collectors.summingDouble(Book::getPrice));
		System.out.println(sum);
		//最大值
		Optional<Book> max = books.stream().collect(Collectors.maxBy(Comparator.comparing(Book::getPrice)));
		System.out.println(max.get());
		//最小值
		Optional<Double> min = books.stream().map(Book::getPrice).collect(Collectors.minBy(Double::compare));
		//分组
		Map<Double, List<Book>> map = books.stream().collect(Collectors.groupingBy(Book::getPrice));
		//分区
		Map<Boolean, List<Book>> collect = books.stream().collect(Collectors.partitioningBy(b -> b.getPrice() > 2500));
		//
		DoubleSummaryStatistics summaryStatistics = books.stream().collect(Collectors.summarizingDouble(Book::getPrice));
		System.out.println(summaryStatistics.getAverage()+summaryStatistics.getCount()+summaryStatistics.getMax());
		//连接
		String name = books.stream().map(Book::getName).collect(Collectors.joining());
		 name = books.stream().map(Book::getName).collect(Collectors.joining(",","[","]"));
		System.out.println(name);

最值

        // 无限流--迭代
        // iterate方法接受一个初始值(在这里是0),还有一个依次应用在每个产生的新值上的Lambda(UnaryOperator<t>类型)
        // 斐波纳契数列是著名的经典编程练习。下面这个数列就是斐波纳契数列的一部分:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…数列中开始的两个数字是0和1,后续的每个数字都是前两个数字之和。
        // 斐波纳契元组序列与此类似,是数列中数字和其后续数字组成的元组构成的序列:(0, 1), (1, 1), (1, 2), (2, 3), (3, 5), (5, 8), (8, 13), (13, 21) …
        // 你的任务是用iterate方法生成斐波纳契元组序列中的前20个元素
        Integer integer = Stream.iterate(new int[]{0, 1}, t -> new int[]{t[1], t[0] + t[1]}).limit(20).map(e -> e[0]).max(Comparator.naturalOrder()).get();
        // 流只能操作一次
        Stream.iterate(new int[]{0, 1}, t -> new int[]{t[1], t[0] + t[1]}).limit(20).map(e -> e[0]).forEach(System.out::println);
        // 求和
        int sum = Stream.iterate(new int[]{0, 1}, t -> new int[]{t[1], t[0] + t[1]}).limit(20).mapToInt(e -> e[0]).sum();

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值