stream流怎么把list转为map 并分组
时间: 2023-08-24 09:24:46 浏览: 74
可以使用Java 8中的Stream API来将List转换为Map并分组。下面是一个示例代码:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "avocado", "grape", "kiwi");
Map<Integer, List<String>> map = list.stream().collect(Collectors.groupingBy(String::length));
```
在这个示例中,我们将List中的每个元素按照长度进行分组,并将每个分组的结果存储在一个Map中。我们使用 `Collectors.groupingBy()` 方法来进行分组,将元素的长度作为分组的键,将元素本身作为分组的值,最终将结果作为Map返回。
另外,可以使用 `Collectors.mapping()` 方法在分组的基础上进行进一步的转换,例如:
```java
Map<Integer, Set<String>> map = list.stream().collect(Collectors.groupingBy(String::length, Collectors.mapping(String::toUpperCase, Collectors.toSet())));
```
在这个示例中,我们将List中的每个元素按照长度进行分组,并将每个分组的结果转换为大写形式,最终将结果存储在一个Map中。我们使用 `Collectors.mapping()` 方法来进行转换,将元素转换为大写形式,将转换后的元素存储在一个Set中,最终将结果作为Map返回。
阅读全文