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 = () * 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 +
"}";
}
}