collectors.tomap什么意思
时间: 2023-10-31 17:45:40 浏览: 104
`Collectors.toMap()` 是 Java 8 Stream API 中的一个收集器(`Collector`),它用于将流中的元素收集到一个 `Map` 中。
`toMap()` 方法有多个重载形式,其中最常用的如下:
```java
public static <T, K, U>
Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper,
Function<? super T, ? extends U> valueMapper)
```
该方法接受两个函数作为参数:`keyMapper` 和 `valueMapper`。`keyMapper` 函数用于将流中的元素映射为 `Map` 中的键,`valueMapper` 函数则用于将流中的元素映射为 `Map` 中的值。最终将映射后的键值对收集到一个 `Map` 中返回。
例如,下面的代码将一个 `List` 集合中的元素按照长度分组,并将分组结果收集到一个 `Map` 中:
```java
List<String> words = Arrays.asList("apple", "banana", "orange", "pear");
Map<Integer, List<String>> groups = words.stream()
.collect(Collectors.groupingBy(String::length));
```
这里使用了 `groupingBy()` 方法对元素进行分组,收集器的类型是 `toMap()` 方法的重载形式之一。
阅读全文