java stream流 过滤对象中的某个属性
时间: 2023-11-08 22:54:46 浏览: 207
可以使用 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。
相关问题
stream流过滤对象的某个属性
可以使用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流,筛选出list中的某个属性
可以使用Java 8中的Stream API来对List进行筛选。假设我们有一个List<User>,每个User对象都有属性name,我们想筛选出所有名字为"Tom"的User对象,可以这样实现:
```
List<User> userList = ... // 假设我们有一个User对象的List
List<User> tomList = userList.stream()
.filter(user -> "Tom".equals(user.getName()))
.collect(Collectors.toList());
```
这里使用了Stream的filter方法来过滤列表中的元素,然后使用collect方法将符合条件的元素收集到一个新的List中。其中,lambda表达式 `user -> "Tom".equals(user.getName())` 表示对于每个User对象,只有它的名字是"Tom"时才会被保留。