java stream 多次分组
时间: 2023-10-15 19:31:11 浏览: 89
java毕设项目之ssm基于SSM的高校共享单车管理系统的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip
在Java中,使用Stream API可以对数据进行多次分组。可以通过多次调用`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");
// 第一次按照名字的长度进行分组
Map<Integer, List<String>> lengthGroup = names.stream()
.collect(Collectors.groupingBy(String::length));
System.out.println("按照名字的长度分组:");
System.out.println(lengthGroup);
// 第二次按照首字母进行分组
Map<Character, List<String>> letterGroup = names.stream()
.collect(Collectors.groupingBy(name -> name.charAt(0)));
System.out.println("按照首字母分组:");
System.out.println(letterGroup);
}
}
```
输出结果:
```
按照名字的长度分组:
{3=[Bob], 5=[Alice, David], 7=[Charlie]}
按照首字母分组:
{A=[Alice], B=[Bob], C=[Charlie], D=[David], E=[Eve]}
```
在这个示例中,我们首先按照名字的长度进行了分组,然后再按照每个分组中的首字母进行了二次分组。你可以根据自己的需求进行多次分组操作。
阅读全文