欢迎访问宙启技术站
智能推送

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)的概念,使得函数式编程变得更加简洁和高效。