一个学生列表,学生对象有姓名和班级,请按班级分组合并,返回班级列表,请用Java Stream实现
时间: 2024-03-20 22:41:37 浏览: 63
可以使用Java Stream的groupingBy方法按班级分组,然后使用mapping方法将学生对象转换为姓名列表。具体实现代码如下:
```java
import java.util.*;
import java.util.stream.Collectors;
public 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;
}
public static void main(String[] args) {
// 创建学生列表
List<Student> students = Arrays.asList(
new Student("Tom", "Class1"),
new Student("Jerry", "Class2"),
new Student("Lucy", "Class1"),
new Student("Lily", "Class2"),
new Student("Jack", "Class1")
);
// 按班级分组合并
Map<String, List<String>> result = students.stream()
.collect(Collectors.groupingBy(Student::getClazz, Collectors.mapping(Student::getName, Collectors.toList())));
// 输出结果
System.out.println(result);
}
}
```
输出结果为:
```
{Class1=[Tom, Lucy, Jack], Class2=[Jerry, Lily]}
```
阅读全文