Collectors.groupingBy的作用
时间: 2023-10-13 19:23:12 浏览: 28
Collectors.groupingBy是Java 8中的一个静态方法,它的作用是根据某个特征对流中的元素进行分组,并将分组后的结果存储在一个Map对象中。它接受一个Function类型的参数,用于指定分组的特征,返回一个Map对象,其中键为分组的特征,值为对应的元素列表。
具体来说,Collectors.groupingBy方法的签名如下:
```
public static <T, K> Collector<T, ?, Map<K, List<T>>> groupingBy(Function<? super T, ? extends K> classifier)
```
其中,参数classifier是一个Function类型的参数,用于指定分组的特征。它将流中的元素映射为分组的键,返回一个Map对象,其中键为分组的特征,值为对应的元素列表。
例如,假设我们有一个List<String>类型的列表,我们想要根据字符串的长度分组,可以使用Collectors.groupingBy方法来实现:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "grape");
Map<Integer, List<String>> map = list.stream().collect(Collectors.groupingBy(String::length));
```
运行上述代码后,map将包含以下内容:
```
{
3=[pear],
5=[apple, grape],
6=[banana, orange]
}
```
其中,键为字符串的长度,值为对应长度的字符串列表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)