四时宝库

程序员的知识宝库

Java教程:Java8统计list中指定属性的最大、最小、平均值、求和

点击上方关注订阅黑码教主获取更多精彩内容

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();
 List<Student1> list = 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

如果你觉得本篇还不错,请点赞关注!

文章由黑码教主创作,仅代表个人观点,配图源于网络版权归原作者所有,如有侵权联系删除!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接