collect(Collectors.groupingBy())
时间: 2023-10-17 22:32:00 浏览: 73
java8新特性之stream的collect实战教程
5星 · 资源好评率100%
`Collectors.groupingBy()` 是Java 8 中的一个流操作,用于按照指定的条件对元素进行分组。它接受一个 `Function` 参数来决定分组的依据,并返回一个 `Map`,其中键是按照分组条件生成的结果,值则是属于相同分组的元素列表。
下面是一个示例:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingByExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "pear", "apple", "orange", "banana");
// 按照水果的长度进行分组
Map<Integer, List<String>> groups = fruits.stream()
.collect(Collectors.groupingBy(String::length));
System.out.println(groups);
}
}
```
输出结果为:
```
{5=[apple, apple, banana], 6=[banana, orange], 4=[pear]}
```
在这个示例中,我们根据水果的长度进行了分组。键是水果的长度,值是具有相同长度的水果列表。
希望这个例子能帮助你理解 `Collectors.groupingBy()` 的用法。如果你还有其他问题,请随时提问!
阅读全文