java 8 BigDecimal进行相加

 private static final DecimalFormat df = new DecimalFormat("0.00");//保留两位小数点
    public static void main(String[] args) {
        Random random = new Random();
        List<User> list = new ArrayList<>();
        for(int i=1;i<=5;i++) {
            double weight = random.nextDouble() * 100 + 100;//随机身高:100-200
            list.add(new User(i, new BigDecimal(weight).setScale(BigDecimal.ROUND_HALF_UP, 2)));
        }
        System.out.println("list:" + list);

        BigDecimal add = list.stream().map(p->p.getHeight().multiply(new BigDecimal(p.getId()))).reduce(BigDecimal.ZERO, BigDecimal::add);
//        BigDecimal add = list.stream().map(User::getHeight).reduce(BigDecimal.ZERO, BigDecimal::add);
//        list:[User{id=1, height=189.5264}, User{id=2, height=157.3866}, User{id=3, height=161.9683}, User{id=4, height=100.9588}, User{id=5, height=135.1913}]
//        身高 总和:745.03
        System.out.println("身高 总和:" + df.format(add));
        Optional<User> max = list.stream().max((u1, u2) -> u1.getHeight().compareTo(u2.getHeight()));
        System.out.println("身高 最大:" + df.format(max.get().getHeight()));
        Optional<User> min = list.stream().min((u1, u2) -> u1.getHeight().compareTo(u2.getHeight()));
        System.out.println("身高 最小:" + df.format(min.get().getHeight()));

    }
    private static class User{
        Integer id;
        BigDecimal height;//身高

        public User(Integer id, BigDecimal height) {
            this.id = id;
            this.height = height;
        }

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        public BigDecimal getHeight() {
            return height;
        }

        public void setHeight(BigDecimal height) {
            this.height = height;
        }

        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", height=" + height +
                    "}";


    }
}

猜你喜欢

转载自blog.csdn.net/otiankuaile/article/details/81010924