java stream中新建对象在forEach中设值
时间: 2023-04-02 14:00:38 浏览: 109
可以在forEach中使用lambda表达式来新建对象并设值,例如:
List<String> list = Arrays.asList("apple", "banana", "orange");
List<Fruit> fruits = new ArrayList<>();
list.forEach(name -> fruits.add(new Fruit(name)));
这样就可以在forEach中新建Fruit对象并设值,将其添加到fruits列表中。
相关问题
java stream中新建对象在forEach中用Setter进行设值
可以在forEach中使用Setter对新建的对象进行设值。例如:
List<Person> personList = new ArrayList<>();
// 假设Person类有name和age属性以及对应的setter方法
Stream.of("Tom", "Jerry", "Mike")
.forEach(name -> {
Person person = new Person();
person.setName(name);
person.setAge(18);
personList.add(person);
});
这样就可以在forEach中新建对象并使用Setter进行设值了。
java 用stream流遍历list,如果对象里面的age等于0,就set为1
可以使用 `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` 中。
阅读全文