java获取集合中的某个学号
时间: 2024-05-11 16:19:56 浏览: 87
假设你有一个学生列表,每个学生有一个唯一的学号和其他属性,你可以使用Java中的Stream API和Lambda表达式来获取指定学号的学生对象。
假设你的学生类如下:
```java
public class Student {
private String id;
private String name;
private int age;
// 构造方法、getter和setter省略
}
```
你的学生列表可以是一个List<Student>类型的集合,例如:
```java
List<Student> studentList = new ArrayList<>();
studentList.add(new Student("001", "张三", 18));
studentList.add(new Student("002", "李四", 19));
studentList.add(new Student("003", "王五", 20));
```
现在,假设你要获取学号为"002"的学生对象,你可以使用以下代码:
```java
Optional<Student> studentOptional = studentList.stream()
.filter(student -> student.getId().equals("002"))
.findFirst();
if (studentOptional.isPresent()) {
Student student = studentOptional.get();
// do something with the student object
} else {
// 学号为"002"的学生不存在
}
```
代码解析:
1. 调用stream()方法将集合转换成一个Stream对象。
2. 使用filter()方法筛选出学号为"002"的学生对象。
3. 使用findFirst()方法返回第一个匹配的学生对象,如果没有匹配到任何学生,则返回一个空的Optional对象。
4. 如果Optional对象不为空,则说明学号为"002"的学生存在,可以通过get()方法获取该学生对象进行后续的操作。如果Optional对象为空,则说明学号为"002"的学生不存在。
阅读全文