java中stream流中的分组
时间: 2023-09-24 08:13:04 浏览: 112
java1.8 中 stream 的 groupingBy 最大值、最小值分组
在Java中,Stream流提供了一种方便的方式来对数据进行分组操作。你可以使用Stream的`collect`方法结合`Collectors.groupingBy`来实现分组。
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve", "Frank");
// 根据名字的首字母进行分组
Map<Character, List<String>> groupedNames = names.stream()
.collect(Collectors.groupingBy(name -> name.charAt(0)));
// 输出结果
for (Map.Entry<Character, List<String>> entry : groupedNames.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
上述代码将根据名字的首字母进行分组,并将结果存储在一个`Map`中。输出结果如下:
```
A: [Alice]
B: [Bob]
C: [Charlie]
D: [David]
E: [Eve]
F: [Frank]
```
在`Collectors.groupingBy`方法中,你可以传入一个函数来决定如何分组。在上述示例中,我们使用了`name -> name.charAt(0)`来获取名
阅读全文