搞一下int 、double、 BigDecimal 三种类型的求和。
public static class User{
private int age;//年龄
private BigDecimal price;//金额
private double score;//评分
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
public static void main(String[] args) {
List<User> list=new ArrayList<>();
//new一个User,给它赋值
User p=new User();
p.setAge(10);
p.setPrice(BigDecimal.valueOf(26));
p.setScore(2.6);
//把p放进list
list.add(p);
//再来一个
User p1=new User();
p1.setAge(20);
p1.setPrice(BigDecimal.valueOf(36));
p1.setScore(1.5);
把p1也放进list
list.add(p1);
//年龄age的和
int sum= list.stream().mapToInt(User::getAge).sum();
System.out.println(sum);
//金额price的和
BigDecimal
//reduce是根据指定的计算模型将Stream中的值计算得到一个最终结果
sum1=list.stream().map(User::getPrice).reduce(BigDecimal.ZERO,BigDecimal::add);
System.out.println(sum1);
//评分score的和
double sum2=list.stream().mapToDouble(User::getScore).sum();
System.out.println(sum2);
}
打印结果:
30
62
4.1