..stream().map().collect()
时间: 2024-09-20 11:11:31 浏览: 36
`Stream` 是 Java 8 引入的一种强大的数据处理模型,它允许你在集合上进行并行或非并行的操作。`map()` 和 `collect()` 是 `Stream` API 中常用的两个方法:
1. `.map()`:这个方法是对流中的每个元素应用一个函数(即谓词),将元素转换成新的值。例如,如果你有一个整数列表,你可以使用 `.mapToInt()` 将它们转换为整数流,或者使用 `.map(String::toUpperCase)` 来将所有字符串转为大写。
2. `.collect()`:此方法用于收集操作的结果,将其转化为一个更具体的集合结构,如列表、数组、映射等。常见的收集器有 `Collectors.toList()`(创建列表)、`Collectors.toSet()`(创建集合)、`Collectors.summingInt()`(求和)等。你可以根据需求选择合适的收集器来聚合流中的元素。
举个例子,假设你有一个整数列表,你可以这样做:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<String> squaredNumbers = numbers.stream()
.map(String::valueOf) // 转换为String流便于乘方运算
.map(Integer::pow) // 对每个数字取平方
.map(String::valueOf) // 再次转换回String
.collect(Collectors.toList());
```
这会得到一个新的列表,其中包含原列表中每个数字的平方。
阅读全文