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

Java函数使用示例:实现根据条件筛选列表

发布时间:2023-11-05 13:47:44

在Java中,可以使用函数来筛选列表中满足特定条件的元素。下面是一个示例,演示如何使用Java函数来根据条件筛选列表。

假设有一个存储学生信息的列表,每个学生有一个名称和年龄属性。我们的目标是从列表中筛选出所有年龄大于20岁的学生。

首先,我们需要定义一个学生类,包含名称和年龄属性,并生成相应的getter和setter方法。

public class Student {
    private String name;
    private int age;
    
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // Getter and setter methods

    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
}

接下来,我们需要创建一个包含学生对象的列表,并向其中添加一些示例数据。

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        
        students.add(new Student("John", 18));
        students.add(new Student("Alice", 22));
        students.add(new Student("Bob", 21));
        students.add(new Student("Emily", 19));
        students.add(new Student("Mike", 25));
    }
}

现在,我们可以使用Java函数来筛选出年龄大于20岁的学生。

import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;

public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        
        students.add(new Student("John", 18));
        students.add(new Student("Alice", 22));
        students.add(new Student("Bob", 21));
        students.add(new Student("Emily", 19));
        students.add(new Student("Mike", 25));
        
        List<Student> filteredStudents = filterStudents(students, student -> student.getAge() > 20);
        
        for (Student student : filteredStudents) {
            System.out.println(student.getName());
        }
    }
    
    public static List<Student> filterStudents(List<Student> students, Predicate<Student> predicate) {
        List<Student> filteredStudents = new ArrayList<>();
        
        for (Student student : students) {
            if (predicate.test(student)) {
                filteredStudents.add(student);
            }
        }
        
        return filteredStudents;
    }
}

在上面的示例中,我们定义了一个filterStudents函数,它接受一个学生列表和一个Predicate对象作为参数。Predicate对象是一个函数式接口,用于定义筛选条件。它的test方法用于判断给定的学生是否满足条件。

我们使用Lambda表达式来创建一个Predicate对象,以筛选出年龄大于20岁的学生。然后,通过调用filterStudents函数,并将学生列表和Predicate对象作为参数传递给它,可以获得满足条件的学生列表。

最后,通过遍历筛选后的学生列表,打印出学生的名称。在此示例中,输出将是:

Alice
Bob
Mike

上述示例演示了如何使用Java函数来根据条件筛选列表。你可以根据具体需求修改筛选条件和输出内容,以满足自己的需要。