java stream 循环set值
时间: 2023-09-11 13:03:42 浏览: 51
你可以使用 `forEach()` 方法来循环遍历一个 Java Stream 并设置每个元素的值。
假设你有一个 `List<Person>` 类型的集合,其中 `Person` 类型有一个 `name` 字段,你想将每个人的名字设置为大写。你可以使用以下代码:
```java
List<Person> people = ... // 初始化人员集合
people.stream()
.forEach(person -> person.setName(person.getName().toUpperCase()));
```
在上面的代码中,我们使用了 `stream()` 方法将 `List<Person>` 转换为一个流,然后使用 `forEach()` 方法循环遍历每个人,并使用 `setName()` 方法将名字设置为大写。
相关问题
java stream
Java Stream是Java 8中的一种新特性,它允许我们以声明式方式操作集合(List、Set、Map等)和数组等数据源,类似于SQL语句对数据库的操作。Stream可以极大地简化集合的操作,提高代码的可读性和可维护性。
Stream的操作可以分为中间操作和终止操作。中间操作是指对Stream进行转换和过滤等操作,返回一个新的Stream;而终止操作是指对Stream进行聚合、计算等操作,返回一个结果或者副作用。
Stream的优点有:
1. 代码简洁、可读性强,减少了循环和条件判断的代码;
2. 高效,Stream底层采用了惰性求值和短路求值等技术,避免了不必要的计算;
3. 可以并行执行,提高了计算效率。
但是需要注意的是,Stream并不适合所有情况,对于小数据量的集合操作,使用传统的for循环可能更加高效。
java stream操作对象集合 循环赋值对象属性
可以使用Java 8中的Stream API对集合中的对象进行操作,具体可以使用forEach()方法对每个对象进行循环,并且可以使用lambda表达式操作对象的属性进行赋值。例如:
```
List<User> userList = getUserList();
userList.stream().forEach(user -> user.setName("new name"));
```
这里假设有一个User对象,有name属性,getUserList()方法返回一个User集合。调用stream()方法获取Stream,使用forEach()方法对每个User对象进行循环,使用lambda表达式将每个对象的name属性赋值为"new name"。