groupingBy用法
时间: 2023-11-24 13:14:19 浏览: 67
groupingBy是Java 8中Stream API中的一个收集器(Collector),用于对流中的元素进行分组操作。它接收一个分类函数作为参数,并将流中的元素按照分类函数的结果进行分组。
基本用法如下:
```
Map<K, List<T>> result = stream.collect(Collectors.groupingBy(classifier));
```
其中,stream是一个流,classifier是一个函数,用于将流中的元素进行分类。该方法会返回一个Map对象,其中的键(Key)是分类函数的结果,值(Value)是属于该分类的元素列表。
示例代码:
```
List<String> fruits = Arrays.asList("apple", "banana", "orange", "apple", "grape", "banana");
Map<String, List<String>> result = fruits.stream().collect(Collectors.groupingBy(fruit -> fruit));
System.out.println(result);
```
输出结果:
```
{orange=[orange], banana=[banana, banana], apple=[apple, apple], grape=[grape]}
```
上述示例中,我们使用groupingBy对水果列表进行分组,按照水果的名称进行分类。最终得到的Map对象中,每个键表示一个水果的名称,对应的值是一个列表,包含属于该分类的所有水果。
除了基本用法外,groupingBy还支持其他一些功能,比如可以对分组后的元素进行进一步操作,例如计数、求和、平均值等。你可以根据具体需求自行查阅相关资料来了解更多用法。
阅读全文