一个学生列表,学生对象有姓名和班级,请按班级分组合并,返回班级列表,请用Java Stream实现
时间: 2024-03-19 16:44:09 浏览: 19
好的,可以使用Java Stream来实现按班级分组合并学生列表的操作。具体代码如下:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Student> students = Arrays.asList(
new Student("张三", "1班"),
new Student("李四", "2班"),
new Student("王五", "1班"),
new Student("赵六", "2班"),
new Student("钱七", "3班"),
new Student("孙八", "1班")
);
Map<String, List<Student>> result = students.stream()
.collect(Collectors.groupingBy(Student::getClazz));
System.out.println(result);
}
static class Student {
private String name;
private String clazz;
public Student(String name, String clazz) {
this.name = name;
this.clazz = clazz;
}
public String getName() {
return name;
}
public String getClazz() {
return clazz;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", clazz='" + clazz + '\'' +
'}';
}
}
}
```
在这段代码中,我们首先定义了一个`Student`类,用于存储学生的姓名和班级信息。然后,我们创建了一个学生列表,并使用Java Stream中的`Collectors.groupingBy`方法按班级进行分组,最终返回了一个`Map<String, List<Student>>`类型的结果,其中键为班级名称,值为对应班级的学生列表。最后,我们将结果打印输出。