java中使用stream根据对象属性过滤对象集合
时间: 2023-11-08 08:57:13 浏览: 92
Java8中利用stream对map集合进行过滤的方法
可以使用Java 8中引入的Stream API来根据对象属性过滤对象集合。下面是一个示例:
假设有一个Person类,其中有name和age两个属性:
```
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
现在有一个List<Person>对象,我们要根据age属性过滤出年龄大于等于18的Person对象,可以使用如下的代码:
```
List<Person> people = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 17),
new Person("Charlie", 25),
new Person("David", 10)
);
List<Person> filteredPeople = people.stream()
.filter(p -> p.getAge() >= 18)
.collect(Collectors.toList());
System.out.println(filteredPeople);
```
输出结果为:
```
[Person{name='Alice', age=20}, Person{name='Charlie', age=25}]
```
在上面的代码中,我们使用了Stream的filter方法来过滤出年龄大于等于18的Person对象,然后使用collect方法将过滤后的结果收集到一个List中。
阅读全文