java 8 BigDecimal进行相加

时间:2025-02-14 07:17:10
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 = () * 100 + 100;//随机身高:100-200 (new User(i, new BigDecimal(weight).setScale(BigDecimal.ROUND_HALF_UP, 2))); } System.out.println("list:" + list); BigDecimal add = ().map(p->().multiply(new BigDecimal(()))).reduce(BigDecimal.ZERO, BigDecimal::add); // BigDecimal add = ().map(User::getHeight).reduce(, 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 = ().max((u1, u2) -> ().compareTo(())); System.out.println("身高 最大:" + df.format(().getHeight())); Optional<User> min = ().min((u1, u2) -> ().compareTo(())); System.out.println("身高 最小:" + df.format(().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{" + "color:#660e7a;">id + ", height=" + height + "}"; } }