map和foreach的区别
时间: 2023-10-08 16:06:50 浏览: 54
Map和ForEach是两种不同的操作,常用于处理集合类的数据。
Map是一种将一个集合转换为另一个集合的操作,它将原始集合的每个元素应用给定的函数,并返回包含函数结果的新集合。Map操作不会修改原始集合,而是创建一个新集合。
例如,假设有一个包含整数的列表,并且我们想将每个元素加上2,然后创建一个新的列表。可以使用Map操作来实现此操作,示例如下:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> newList = list.stream()
.map(n -> n + 2)
.collect(Collectors.toList());
```
在上面的代码中,我们首先将整数列表转换为流,然后使用Map操作将每个元素加上2,并最终将结果收集到新列表中。
ForEach是一种迭代集合中的每个元素并对其执行给定操作的操作。它没有返回值,只是对原始集合进行操作。
例如,假设有一个字符串列表,并且我们想将每个元素打印到控制台上。我们可以使用ForEach操作来实现此操作,示例如下:
```
List<String> list = Arrays.asList("Hello", "World", "Java");
list.stream().forEach(System.out::println);
```
在上面的代码中,我们将字符串列表转换为流,然后使用ForEach操作将每个元素打印到控制台上。注意,ForEach操作不会创建新集合,只是对原始集合进行操作。
阅读全文