stream流 生成map
时间: 2023-11-09 16:47:35 浏览: 40
您好!要生成一个包含流元素的映射(map),您可以使用Java 8中的流操作和Collectors类中的toMap方法。toMap方法可以将流元素转换为一个映射。
下面是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> items = List.of("apple", "banana", "orange");
// 使用流生成一个映射,键为字符串,值为字符串的长度
Map<String, Integer> map = items.stream()
.collect(Collectors.toMap(item -> item, item -> item.length()));
// 打印映射的内容
map.forEach((key, value) -> System.out.println(key + " -> " + value));
}
}
```
在这个例子中,我们使用流生成了一个包含水果名称和它们的长度的映射。通过调用`stream()`方法将列表转换为流,然后使用`collect()`方法和`Collectors.toMap()`来生成映射。`toMap()`方法接受两个函数作为参数,第一个函数将元素转换为键,第二个函数将元素转换为值。
运行上述代码将输出:
```
orange -> 6
banana -> 6
apple -> 5
```
希望能对您有所帮助!如果您有任何其他问题,请随时提问。