stream流过滤对象的某个属性
时间: 2023-11-08 14:09:04 浏览: 156
可以使用Java 8中的Stream API来过滤对象的某个属性。假设我们有一个类Person,它有一个属性age,现在我们想过滤出年龄大于等于18岁的人,可以按照以下步骤进行操作:
1. 创建一个List<Person>对象。
2. 使用stream()方法将List转换为Stream。
3. 使用filter()方法过滤出符合条件的元素,条件为person.getAge() >= 18。
4. 使用map()方法将Stream中的元素转换为另一个类型,例如将Person转换为其年龄。
5. 使用collect()方法将Stream转换为List。
以下是示例代码:
```
List<Person> personList = new ArrayList<>();
// 添加Person对象到personList中
List<Integer> ageList = personList.stream()
.filter(person -> person.getAge() >= 18)
.map(Person::getAge)
.collect(Collectors.toList());
```
这样,我们就过滤出了年龄大于等于18岁的人,并将他们的年龄转换为一个List。
相关问题
java stream流 过滤对象中的某个属性
可以使用 stream 的 map() 方法,将对象中要过滤的属性映射出来,然后使用 filter() 方法进行过滤,最后使用 collect() 方法将过滤后的对象转为一个新的 list 。
例如:
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("Alice", 26));
personList.add(new Person("Bob", 31));
personList.add(new Person("Charlie", 24));
List<Integer> ageList = personList.stream().map(Person::getAge).filter(age -> age > 25).collect(Collectors.toList());
这个例子将 Person 对象中的 age 属性映射出来,然后对 age 大于 25 的进行过滤,最后将符合条件的 age 转为一个新的列表 ageList。
List对象数组根据某个属性过滤java
要根据某个属性过滤Java中的List对象数组,可以使用Java 8的Stream API来实现。具体步骤如下:
1. 使用Stream()方法将List转换为流对象。
2. 使用filter()方法过滤符合条件的对象,可以使用Lambda表达式作为过滤条件。
3. 使用collect()方法将过滤后的对象收集到一个新的List中。
下面是一个示例代码,假设我们有一个Person类,其中包含name和age属性,我们需要根据age属性过滤List<Person>对象数组:
```java
List<Person> persons = new ArrayList<>();
// 添加Person对象到persons中
...
// 过滤年龄大于20的Person对象
List<Person> filteredPersons = persons.stream()
.filter(p -> p.getAge() > 20)
.collect(Collectors.toList());
```
在上面的代码中,我们使用了Lambda表达式作为过滤条件,即只保留年龄大于20的Person对象,然后使用collect()方法将过滤后的对象收集到一个新的List中。