Collectors.toMap(Function.identity(), e -> 0L)
时间: 2023-08-12 19:54:27 浏览: 45
`Collectors.toMap(Function.identity(), e -> 0L)` 是 Java 中 `Collectors` 类的一个静态方法,用于将流中的元素转换为一个 `Map` 对象。它接受两个参数,第一个参数是一个函数,表示如何将流中的元素映射为 `Map` 的键,而第二个参数是一个函数,表示如何将流中的元素映射为 `Map` 的值。
在你提供的这个例子中,`Function.identity()` 表示将流中的元素作为键,保持不变。而 `e -> 0L` 表示将流中的每个元素映射为固定的值 `0L`。
以下是一个简单的示例,展示了如何使用 `Collectors.toMap(Function.identity(), e -> 0L)`:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ToMapExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange");
Map<String, Long> fruitCountMap = fruits.stream()
.collect(Collectors.toMap(Function.identity(), e -> 0L));
System.out.println(fruitCountMap);
// 输出:{apple=0, banana=0, orange=0}
}
}
```
在上面的示例中,我们有一个包含水果名称的列表 `fruits`。我们使用流来将列表中的水果转换为一个 `Map`,其中键是水果名称,值都设置为 `0L`。最后,我们打印输出这个 `Map`,得到 `{apple=0, banana=0, orange=0}`。
总结起来,`Collectors.toMap(Function.identity(), e -> 0L)` 可以用于将流中的元素转换为一个键值对 `Map`,其中键是流中的元素本身,值可以是固定的值或者根据元素进行计算得到的值。