javastream流中tomap
时间: 2024-05-30 15:07:31 浏览: 107
Java Stream 中的 toMap() 方法可以将一个流中的元素映射成一个Map集合。toMap() 方法有多个重载形式,其中最常用的重载形式如下:
```
toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper)
```
其中,keyMapper 和 valueMapper 都是函数式接口,用于将元素映射成 Map 的键和值。例如,下面的代码将一个字符串数组中的元素按照长度映射成一个 Map,其中字符串是键,字符串长度是值:
```
String[] strings = {"apple", "banana", "orange"};
Map<String, Integer> map = Arrays.stream(strings)
.collect(Collectors.toMap(Function.identity(), String::length));
```
以上代码使用了 identity() 方法作为 keyMapper 函数,它返回元素本身作为键;使用了 String::length 方法作为 valueMapper 函数,它返回字符串的长度作为值。
相关问题:
1. Java Stream 中的 toMap() 方法有哪些重载形式?
2. toMap() 方法中的 keyMapper 和 valueMapper 都是什么作用?如何使用它们?
3. 使用 toMap() 方法将元素映射成 Map 时需要注意什么?
阅读全文