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);
    }

簡單計算

三、 完畢

本文爲作者原創,轉載請申明

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章