我们将使用如下函数检验你的函数: import java.util.*; public class Main { public static class Student { public String name; public String id; public double score; } /* 此区间是要编写的函数 */ public static List<Student> filter(List<Student> students) { //请补充完整 } /* 此区间是要编写的函数 */ public static void main(String[] args) { Scanner key = new Scanner(System.in); int n = key.nextInt(); List<Student> list = /*接收数据输入,此部分不可见*/; List<Student> result = filter(list); for (Student s : result) { System.out.printf("%s %s %.1f\n", s.id, s.name, s.score); } } }
时间: 2024-02-14 17:16:34 浏览: 74
好的,那我来给你提供一份完整的代码,你可以使用这个代码来检验你的函数是否正确:
```java
import java.util.*;
public class Main {
public static class Student {
public String name;
public String id;
public double score;
}
public static List<Student> filter(List<Student> students) {
List<Student> excellentStudents = new ArrayList<>();
for (Student student : students) {
if (student.score >= 90 && student.score <= 100) {
excellentStudents.add(student);
}
}
return excellentStudents;
}
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
int n = key.nextInt();
List<Student> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
Student student = new Student();
student.id = key.next();
student.name = key.next();
student.score = key.nextDouble();
list.add(student);
}
List<Student> result = filter(list);
for (Student s : result) {
System.out.printf("%s %s %.1f\n", s.id, s.name, s.score);
}
}
}
```
这份代码中,我们定义了一个 `Student` 类,包含学生的姓名、学号和成绩。我们的 `filter` 函数与之前的示例代码实现相同,接收一个 `List<Student>` 类型的参数 `students`,遍历 `students` 中的每一个学生,如果该学生的成绩大于等于 90 并且小于等于 100,则将该学生加入到结果列表 `excellentStudents` 中。最后将 `excellentStudents` 返回即可。
在 `main` 函数中,我们首先读入一个整数 `n`,表示学生的数量。接下来读入 `n` 行数据,每行数据包含一个学生的学号、姓名和成绩。然后我们调用 `filter` 函数,将 `list` 作为参数传入。最后遍历 `result` 中的每一个学生,按照格式输出学号、姓名和成绩即可。
你可以根据这份代码来检验你的函数是否正确。
阅读全文