java中使用Stream改变list对象集合中的值
时间: 2023-08-07 17:03:22 浏览: 118
可以使用Stream的map方法来改变List对象集合中的值,具体实现如下:
假设我们有一个Person对象的List集合,现在想把每个Person对象的年龄加上10,可以使用以下代码实现:
```
List<Person> personList = new ArrayList<>();
// 假设已经将personList集合中的数据初始化完毕
List<Person> newList = personList.stream()
.map(person -> {
person.setAge(person.getAge() + 10);
return person;
})
.collect(Collectors.toList());
```
上述代码中,通过stream()方法获取到List集合的流对象,然后使用map方法对每个Person对象进行处理,将年龄加上10,最后使用collect方法将处理后的对象收集起来,生成一个新的List集合。注意,这里使用的是map方法而不是forEach方法,因为map方法会生成一个新的流对象,而forEach方法只是对流中的每个元素进行操作,并不会生成新的流对象。
相关问题
java中使用Stream改变list集合中的值
使用Java 8中的Stream API可以很方便地对List集合中的元素进行修改。
例如,我们有一个List集合存储了一些整数,现在想要将每个元素加上1,可以使用如下代码:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> modifiedList = list.stream()
.map(i -> i + 1)
.collect(Collectors.toList());
```
上述代码中,我们使用了stream()方法将List集合转换为Stream流,然后使用map()方法对每个元素进行加1操作,最后使用collect()方法将修改后的流转换为List集合并保存到modifiedList中。
如果想要直接修改原始的List集合中的元素,可以使用如下代码:
```
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
list.replaceAll(i -> i + 1);
```
上述代码中,我们使用了List的replaceAll()方法,该方法接受一个UnaryOperator函数作为参数,该函数用于对每个元素进行修改。在本例中,我们使用lambda表达式 i -> i + 1 表示对每个元素加1操作。执行完replaceAll()方法后,原始的List集合中的元素值会被修改。
java中使用stream往集合对象添加属性值
可以使用Java 8引入的Stream API来往集合对象添加属性值。下面是一个示例:
假设我们有一个名为Person的类,它有两个属性:name和age。我们有一个List<Person>列表,我们想要给每个人添加一个country属性,并将其设置为“China”。
```java
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 20));
personList.add(new Person("Bob", 25));
personList.add(new Person("Charlie", 30));
personList.stream()
.forEach(person -> person.setCountry("China"));
```
这里我们使用了Stream的forEach方法,它接受一个Consumer函数式接口作为参数,该接口用于对Stream中的每个元素执行操作。在我们的例子中,我们使用Lambda表达式将“China”设置为每个Person对象的country属性。
阅读全文