zoukankan      html  css  js  c++  java
  • 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();


    ————————————————
    版权声明:本文为CSDN博主「努力奋斗GO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_39940205/article/details/86308024

  • 相关阅读:
    学习进度条
    0302我的感想
    1217实验四 递归下降语法分析程序设计
    1118 实验三 有限自动机的构造与识别
    1112我的访问与评论日记
    1014 我的C语言文法定义与C程序推导过程
    0917词法分析
    命令解释程序的编写
    构建之法前三章读后感
    复利计算4.0
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/14992268.html
Copyright © 2011-2022 走看看