list.stream循环修改数据
时间: 2023-11-19 21:04:33 浏览: 101
修改列表数据
在Java中,使用Stream API可以轻松地迭代和修改List中的数据。下面是一个例子:
假设我们有一个List<Integer>,我们想将其中所有的偶数加1。可以使用以下代码:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
list = list.stream()
.map(i -> i % 2 == 0 ? i + 1 : i)
.collect(Collectors.toList());
System.out.println(list); // [1, 3, 3, 5, 5, 7]
```
在这个例子中,我们使用Stream API的map()方法来对List中的每个元素进行操作。如果元素是偶数,我们将其加1,否则保持不变。最后,我们使用collect()方法将Stream转换回List。
需要注意的是,这个操作是不会修改原始的List对象的,而是创建了一个新的List对象。如果需要修改原始的List对象,可以使用List的forEach()方法,如下所示:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
list.forEach(i -> {
if (i % 2 == 0) {
list.set(list.indexOf(i), i + 1);
}
});
System.out.println(list); // [1, 3, 3, 5, 5, 7]
```
在这个例子中,我们使用List的forEach()方法遍历List中的每个元素。如果元素是偶数,我们使用List的set()方法修改原始的List对象。需要注意的是,在使用List的set()方法时,需要使用List的indexOf()方法来查找元素在List中的位置。
阅读全文