Java语言完成Stream综合案例
以下是一个使用Java Stream完成的综合案例:计算一组学生的平均分数。
假设有一个学生类(Student)包含以下属性:姓名(name)、年龄(age)和分数(score)。
首先,我们需要创建一个包含学生对象的列表:
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 18, 90));
students.add(new Student("李四", 20, 85));
students.add(new Student("王五", 19, 95));
students.add(new Student("赵六", 21, 80));
然后,我们可以使用Stream来计算学生的平均分数:
double averageScore = students.stream()
.mapToInt(Student::getScore) // 将学生对象映射为分数
.average() // 计算平均值
.orElse(0); // 如果列表为空,返回0
在上述代码中,我们首先使用stream()方法将列表转换为一个流,然后使用mapToInt()方法将学生对象映射为分数,接着使用average()方法计算平均值。最后,我们使用orElse()方法来处理列表为空的情况。
最后,我们可以输出计算得到的平均分数:
System.out.println("平均分数:" + averageScore);
完整的代码如下:
import java.util.ArrayList;
import java.util.List;
class Student {
private String name;
private int age;
private int score;
public Student(String name, int age, int score) {
this.name = name;
this.age = age;
this.score = score;
}
public int getScore() {
return score;
}
}
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 18, 90));
students.add(new Student("李四", 20, 85));
students.add(new Student("王五", 19, 95));
students.add(new Student("赵六", 21, 80));
double averageScore = students.stream()
.mapToInt(Student::getScore)
.average()
.orElse(0);
System.out.println("平均分数:" + averageScore);
}
}
运行以上代码将输出:平均分数:87.5
原文地址: https://www.cveoy.top/t/topic/hF6U 著作权归作者所有。请勿转载和采集!