lamda 对象集合过滤
时间: 2024-02-12 17:15:33 浏览: 78
Lambda表达式也可以用来过滤对象集合。假设你有一个Person类,它长这样:
```java
public class Person {
private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
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;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
```
现在你有一个Person对象的List集合,你想过滤这个集合,只留下所有年龄大于等于25岁的人。你可以使用Lambda表达式来实现:
```java
import java.util.ArrayList;
import java.util.List;
public class ObjectFilterExample {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25, "female"));
people.add(new Person("Bob", 30, "male"));
people.add(new Person("Charlie", 20, "male"));
List<Person> filteredPeople = people.stream().filter(p -> p.getAge() >= 25).collect(Collectors.toList());
for (Person person : filteredPeople) {
System.out.println(person.getName());
}
}
}
```
这个例子中,我们首先创建了一个Person对象的List集合。然后,我们使用stream()方法将这个集合转换为一个流。接着,我们使用filter()方法来过滤这个流,只留下所有年龄大于等于25岁的人。最后,我们使用collect()方法将过滤后的流转换为一个List集合。
输出结果如下:
```
Alice
Bob
```
可以看到,只有年龄大于等于25岁的人被保留下来了。
阅读全文