Java函数编程案例分享
发布时间:2023-11-08 09:27:36
Java函数式编程是指使用函数作为方法的参数或返回值,以简化代码和提高代码的可读性和可维护性。下面是一个简单的案例分享,展示了如何使用函数式编程处理一个集合。
假设有一个包含一组学生信息的集合,每个学生有姓名和分数两个属性。需求是找到分数大于80分的学生,并按照分数从高到低的顺序进行排序输出。
首先,定义一个Student类,包含姓名和分数两个属性。
public class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
}
然后,创建一个List用于存放学生信息,并向其中添加几个学生。
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 90));
students.add(new Student("李四", 85));
students.add(new Student("王五", 75));
students.add(new Student("赵六", 95));
接下来,使用函数式编程的方式进行筛选和排序。
首先,使用filter函数筛选出分数大于80分的学生。
List<Student> filteredStudents = students.stream()
.filter(student -> student.getScore() > 80)
.collect(Collectors.toList());
然后,使用sorted函数按照分数从高到低的顺序进行排序。
List<Student> sortedStudents = filteredStudents.stream()
.sorted(Comparator.comparing(Student::getScore).reversed())
.collect(Collectors.toList());
最后,遍历处理结果并输出。
for (Student student : sortedStudents) {
System.out.println(student.getName() + " - " + student.getScore());
}
运行结果如下:
赵六 - 95 张三 - 90 李四 - 85
通过这个案例,我们可以看到使用函数式编程的方式,我们可以通过简洁的代码实现复杂的逻辑,提高代码的可读性和可维护性。同时,Java 8以后的版本引入了流(Stream)的概念,使得函数式编程变得更加简洁和高效。
