Stream流简单计算

一、 需求:计算商品的价格

二、代码

class Goods{

    public Goods(String name, Integer num, BigDecimal price) {
        this.name = name;
        this.num = num;
        this.price = price;
    }
    public Goods() {
    }
    /**
     * 商品名称
     */
    private String name;
    /**
     * 数量
     */
    private Integer num;
    /**
     * 单价
     */
    private BigDecimal price;
    /**
     * 该商品总价
     */
    private BigDecimal total;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getTotal() {
        return total;
    }

    public void setTotal(BigDecimal total) {
        this.total = total;
    }
}

计算

 @Test
    public void test1(){
        Map<String,Object> map = new HashMap<>();
        List<Goods> goodsList = new ArrayList<>();
        goodsList.add(new Goods("香蕉",20,BigDecimal.valueOf(2.6)));
        goodsList.add(new Goods("菠萝",10,BigDecimal.valueOf(0.3)));
        goodsList.add(new Goods("可乐",6,BigDecimal.valueOf(2.5)));
        goodsList.add(new Goods("橘子",50,BigDecimal.valueOf(3.6)));
        goodsList.add(new Goods("橙子",5,BigDecimal.valueOf(7.53)));
        goodsList.add(new Goods("苹果",100,BigDecimal.valueOf(3.63)));
        goodsList.add(new Goods("西瓜",20,BigDecimal.valueOf(6.3)));
        goodsList.add(new Goods("葡萄",600,BigDecimal.valueOf(3.6)));
        goodsList.add(new Goods("榴莲",153,BigDecimal.valueOf(2.3)));
        goodsList.stream().forEach(g->g.setTotal(g.getPrice().multiply(BigDecimal.valueOf(g.getNum()))));
        System.out.println(goodsList);
        map.put("goodsList",goodsList);
        map.put("total",goodsList.stream().map(Goods::getTotal).reduce(BigDecimal.ZERO,BigDecimal::add));
        System.out.println(map);
    }

简单计算

三、 完毕

本文为作者原创,转载请申明

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值