java STREAM流 学生姓名分组之后 在求出每组的个数
时间: 2024-03-28 19:38:42 浏览: 58
好的,如果您想要使用 Java 的 Stream API 对学生姓名进行分组,并求出每组的个数,可以按照以下步骤进行操作:
1. 定义一个 Student 类来表示学生信息,包含姓名、成绩等属性:
```
public class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
// getter and setter methods
}
```
2. 准备一些学生数据,存储在一个 List 中:
```
List<Student> students = Arrays.asList(
new Student("Tom", 68),
new Student("Jerry", 85),
new Student("Lucy", 72),
new Student("John", 92),
new Student("Bob", 56),
new Student("Alice", 78),
new Student("Lisa", 89),
new Student("Peter", 44),
new Student("Tom", 66),
new Student("Jerry", 89),
new Student("Lucy", 71),
new Student("John", 94)
);
```
3. 使用 Stream 的 collect 方法,按照学生的姓名进行分组:
```
Map<String, List<Student>> groups = students.stream()
.collect(Collectors.groupingBy(Student::getName)); // 按照姓名分组
```
4. 遍历每个分组,使用 count 统计每组中的学生个数:
```
for (Map.Entry<String, List<Student>> group : groups.entrySet()) {
long count = group.getValue().size();
System.out.println("Group: " + group.getKey() + ", count: " + count);
}
```
这样就可以找到每个分组中的学生个数了。注意,这里使用了 entrySet() 方法来遍历 Map,获取每个分组的键值对,getKey() 方法获取分组的名称,getValue().size() 方法获取分组中学生的数量。具体实现还需要根据您的具体需求进行调整。希望这些信息对您有所帮助。
阅读全文