当前位置: 首页 > 知识库问答 >
问题:

无法使用流API编写reduce方法

微生青青
2023-03-14
@Getter
public class Dish {
   BigDecimal price;
}

我需要计算所有点的菜的总价,但我没有写减价法。这是一个方法签名(参数有一个Dish的映射,以及它被订购了多少次)。

所以它一定是每道菜的总和。getPrice*DishQuantity

    private BigDecimal getOrderTotalPrice(Map<Dish, Integer> dishQuantityMap) {
}

有人问我的失败代码

  return   dishQuantityMap.entrySet().stream()
        .reduce(BigDecimal.ZERO,
                (dishIntegerEntry) ->
               dishIntegerEntry.getKey().getPrice()
                        .multiply(BigDecimal.valueOf(dishIntegerEntry.getValue())));

共有1个答案

逄嘉禧
2023-03-14

你的意思是这样的吗:

private BigDecimal getOrderTotalPrice(Map<Dish, Integer> dishQuantityMap) {
  return dishQuantityMap.entrySet().stream()
          .map(d -> d.getKey().getPrice().multiply(new BigDecimal(d.getValue())))
          .reduce(BigDecimal.ZERO, BigDecimal::add);
}
 类似资料:
  • 目标:练习“.reduce”方法 有3类:x类枚举(A,B,C,D),x类产品(字符串名称,BigDecimal价格,BigDecimal折扣,Category Category)x类订单-产品数量 问题:类App1流操作

  • 本文向大家介绍js编写的treeview使用方法,包括了js编写的treeview使用方法的使用技巧和注意事项,需要的朋友参考一下  本文实例为大家分享了treeview使用方法,供大家参考,具体内容如下  1.所需文件:ftiens4.js,ua.js,XMLTree.js,以及一些树上的图片(文件下载处:http://www.treeview.net/),图片名字和位置如下图   2.其他页面

  • 本文向大家介绍es6中reduce的基本使用方法,包括了es6中reduce的基本使用方法的使用技巧和注意事项,需要的朋友参考一下 前言 为啥要把es6 中 reduce 单独拿出来说呢,因为这个功能实在太骚,值得如此。 reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce() 方法接受四个参数:初始值(或者上一次回调函数的返回值),当前

  • 本文向大家介绍JavaScript中reduce()方法的使用详解,包括了JavaScript中reduce()方法的使用详解的使用技巧和注意事项,需要的朋友参考一下  JavaScript 数组reduce()方法同时应用一个函数针对数组的两个值(从左到右),以减至一个值。 语法 下面是参数的详细信息:     callback : 函数执行在数组中每个值     initialValue :

  • 我正在学习流api,我被流的reduce方法困住了。我有一些细绳,我想把它们凝聚起来。下面是我的代码片段: 我不想让它们按顺序排列,但至少它们不应该重复“虚拟”字符串。 这会导致奇怪的输出。请帮我找出这里出了什么问题。

  • 今天在编程课上我们从streams和Lambda开始,我要做一个练习。 第一个任务是编写一个方法,计算列表中偶数的平均值。我已经编写了这段代码,但显然我没有使用流。 编辑解决方案: 第二个任务是编写一个方法,选择所有以“a”(不区分大小写)开头或有3个字符的字符串,并将其更改为大写。我的代码: 编辑:解决方案: 最后一个任务是返回列表,但将“g”添加到偶数,将“u”添加到奇数。我的代码: 编辑:解