list.stream().map分组统计
时间: 2024-12-27 12:11:50 浏览: 4
`list.stream().map()` 这段代码在 Java 中通常用于对列表(List)中的元素进行流式处理。当你想要将每个元素转换(映射,map)成另一个形式,并希望保持元素集合结构不变时,会使用这个操作。例如,如果你有一个包含数值的列表,你可以通过 `.mapToInt()` 或 `.mapToLong()` 将整数转换为 IntStream 或 LongStream,然后进一步对这些值进行分组统计。
举个例子,如果你想按每个元素的某个属性(如 `String` 类型的长度)进行分组并计算每个组的数量,可以这样做:
```java
List<String> words = Arrays.asList("apple", "banana", "cherry", "apple", "kiwi");
Map<Integer, Long> wordLengthCount = words.stream()
.mapToInt(String::length) // 转换为IntStream
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
```
这里,`.mapToInt(String::length)` 将字符串列表转换为长度的整数流,然后 `Collectors.groupingBy(Function.identity(), Collectors.counting())` 对每个长度进行分组,返回一个键值对的 Map,其中键是长度,值是该长度对应的单词个数。
阅读全文