List中有个Student 用java的流式写法中的max取出生日最大的Student对象
时间: 2024-10-24 18:06:07 浏览: 19
在Java中,如果你想利用Stream API找出List<Student>中最年长的学生(即生日最大),可以这样做:
```java
import java.time.LocalDate;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Student {
private String name;
private LocalDate birthday;
// 构造函数、getter和setter...
public static void main(String[] args) {
List<Student> students = ... // 初始化学生列表
Optional<Student> oldestStudent = students.stream()
.max(Comparator.comparing(Student::getBirthday)); // 按照生日比较
if (oldestStudent.isPresent()) {
System.out.println("最年长的学生是:" + oldestStudent.get().getName());
} else {
System.out.println("学生列表为空");
}
}
}
```
这里我们使用了`max()`函数,传入的是一个比较器`Comparator.comparing(Student::getBirthday)`,它告诉Stream如何根据每个Student对象的`birthday`属性来进行排序。如果列表非空,`max()`会返回一个Optional对象,其中包含年龄最大的Student实例;如果列表为空,则`isPresent()`会返回false。
阅读全文