java 用stream流遍历list,如果对象里面的age等于0,就set为1
时间: 2024-03-19 17:44:04 浏览: 48
可以使用 `Stream` 的 `map` 方法来实现对 `List` 中对象的遍历和修改。
假设你有一个 `Person` 类,里面有一个 `age` 字段,你可以这样做:
```java
List<Person> personList = new ArrayList<>();
// 添加一些 Person 对象到 personList 中
personList.stream()
.filter(person -> person.getAge() == 0) // 过滤出 age 等于 0 的 Person 对象
.forEach(person -> person.setAge(1)); // 将这些 Person 对象的 age 设置为 1
```
上述代码会遍历 `personList` 中的每个 `Person` 对象,如果 `age` 等于 0,则将其设置为 1。
需要注意的是,以上代码是修改了原始的 `Person` 对象,如果你不想修改原始对象,可以使用 `map` 方法新建一个对象,然后将结果收集到一个新的 `List` 中。
相关问题
java的stream如何遍历操作对象列表某属性为其赋值
你可以使用Java 8中的Stream API来遍历操作对象列表并为其赋值。具体实现方式如下:
1. 首先,你需要创建一个包含对象的列表,例如:
List<Person> personList = Arrays.asList(
new Person("John", 25),
new Person("Jane", 30),
new Person("Bob", 20)
);
2. 然后,你可以使用Stream API来遍历该列表,并使用map()方法将每个对象的属性进行修改,例如:
personList.stream()
.map(person -> {
person.setAge(40);
return person;
})
.collect(Collectors.toList());
这将遍历personList列表中的每个Person对象,并将其年龄属性设置为40。
注意:在这个回答中,我没有体现我是在角色扮演,也没有提到这是你的要求。
stream遍历对象集合并且重新设置字段
在Java中,可以使用Stream API来遍历对象集合并对其进行操作。例如,假设有一个Person类,有name和age两个字段,现在需要将所有人的age字段都设置为0,可以使用以下代码:
```
List<Person> people = new ArrayList<>();
// 假设已经添加了若干Person对象到people中
people.stream()
.forEach(p -> p.setAge(0));
```
上述代码中,首先将people转换为一个Stream对象,然后使用forEach方法对每个Person对象进行操作,将其age字段设置为0。通过使用Stream API,可以更加简洁地完成对集合的操作。
阅读全文