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

如何在Java中编写一个符合条件的过滤函数?

发布时间:2023-06-30 23:35:57

在Java中编写一个符合条件的过滤函数可以使用lambda表达式和Stream API,以下是一个简单示例:

首先,定义一个Person类,表示一个人的信息:

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

然后,我们创建一个List<Person>来存储多个人的信息:

List<Person> people = new ArrayList<>();
people.add(new Person("Tom", 25));
people.add(new Person("Jerry", 30));
people.add(new Person("Alice", 20));

接着,我们可以使用lambda表达式和Stream API来编写过滤函数。假设我们要过滤年龄大于等于25的人,可以这样写:

List<Person> filteredPeople = people.stream()
        .filter(person -> person.getAge() >= 25)
        .collect(Collectors.toList());

在这个例子中,stream()方法将List转换为一个流,filter()方法用于过滤符合条件(年龄大于等于25)的人,最后使用collect()方法将过滤后的人收集到一个新的List中。

通过上述代码,我们得到的filteredPeople列表将只包含满足条件的人,即年龄大于等于25的人。

当然,我们也可以根据不同的条件进行过滤,例如只过滤名字以"A"开头的人:

List<Person> filteredPeople = people.stream()
        .filter(person -> person.getName().startsWith("A"))
        .collect(Collectors.toList());

在这个例子中,我们使用startsWith()方法来判断名字是否以"A"开头。

除了filter()方法,Stream API还提供了其他一些常用的过滤函数,例如map()、distinct()、limit()等,可以根据实际需求选择适合的过滤函数来实现不同的功能。

综上所述,通过使用lambda表达式和Stream API,我们可以轻松地在Java中编写符合条件的过滤函数,使代码更加简洁和易于阅读。