有一个Student类,包含id、name、age、classId、sex、score属性。给定一个List<Student>,使用Java Stream分别完成以下要求:1、返回仅age为偶数的Student列表;2、按score降序排列,仅返回前三个Student;3,按照classId分组,返回Map<Integer,List<Student>>班级分组数据
时间: 2024-04-16 15:28:04 浏览: 157
List<T>的使用-C#入门经典ppt
可以使用Java Stream来完成这些要求。以下是针对给定<Student>的解决方案:
1. 返回仅age为偶数的Student列表:
```java
List<Student> evenAgeStudents = students.stream()
.filter(student -> student.getAge() % 2 == 0)
.collect(Collectors.toList());
```
2. 按score降序排列,仅返回前三个Student:
```java
List<Student> topThreeStudents = students.stream()
.sorted(Comparator.comparingInt(Student::getScore).reversed())
.limit(3)
.collect(Collectors.toList());
```
3. 按照classId分组,返回Map<Integer,List<Student>>班级分组数据:
```java
Map<Integer, List<Student>> studentsByClassId = students.stream()
.collect(Collectors.groupingBy(Student::getClassId));
```
希望这些代码能够帮助到你!如果还有其他问题,请继续提问。
阅读全文