java 学生对象的list集合 使用stream,筛选学生名字是 指定的几个,
时间: 2024-12-17 19:16:18 浏览: 1
在 Java 中,如果你有一个 `Student` 对象的列表,并想要通过 Stream API 筛选出名字包含特定字符串的学生,你可以这样做:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
class Student {
String name;
// ...其他属性和构造方法
// 如果有重写的 equals 和 hashCode 方法以便于精确匹配
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
Student student = (Student) obj;
return name.equals(student.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
List<Student> students = ...; // 假设这是你的学生列表
String[] namesToFilter = {"张三", "李四"};
List<Student> filteredStudents = students.stream()
.filter(student -> Arrays.asList(namesToFilter).contains(student.name))
.collect(Collectors.toList());
阅读全文