点击上方关注订阅黑码教主获取更多精彩内容
Java8统计list中指定属性的最大、最小、平均值、求和
使用方式:list.stream().mapToDouble(Student1::getScore).sum()//和
list.stream().mapToDouble(Student1::getScore).max()//最大
list.stream().mapToDouble(Student1::getScore).min()//最小
list.stream().mapToDouble(Student1::getScore).average()//平均值
Student1类class Student1 {
Integer id;
String name;
Double score;
public Student1(Integer id, String name, Double score) {
this.id = id;
this.name = name;
this.score = score;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
@Override
public String toString() {
return "Student1{" +
"id=" + id +
", name='" + name + '\\'' +
", score=" + score +
'}';
}
}
测试private static final DecimalFormat df = new DecimalFormat("0.00");
@Test
public void demo() {
Random random = new Random();
Listlist = new ArrayList<>();
for(int i=1;i<=5;i++) {
double score = Math.round(random.nextDouble() * 100);
Student1 stu = new Student1(i, "学生-" + i, score);
list.add(stu);
}
System.out.println("学生:" + list.toString());
Double sum = list.stream().mapToDouble(Student1::getScore).sum();
Double max = list.stream().mapToDouble(Student1::getScore).max().getAsDouble();
Double min = list.stream().mapToDouble(Student1::getScore).min().getAsDouble();
Double average = list.stream().mapToDouble(Student1::getScore).average().getAsDouble();
System.out.println("总和" + sum);
System.out.println("最大值" + df.format(max));
System.out.println("最小值" + df.format(min));
System.out.println("平均值" + df.format(average));
}
结果:学生:[Student1{id=1, name='学生-1', score=80.0}, Student1{id=2, name='学生-2', score=59.0}, Student1{id=3, name='学生-3', score=27.0}, Student1{id=4, name='学生-4', score=99.0}, Student1{id=5, name='学生-5', score=80.0}]
总和345.0
最大值99.00
最小值27.00
平均值69.00
如果你觉得本篇还不错,请点赞关注!
文章由黑码教主创作,仅代表个人观点,配图源于网络版权归原作者所有,如有侵权联系删除!