某教务管理系统中一个班级(Clas)包含多个学生(Student),使用Java内置迭代器实现对学生信息的遍历,要求按学生年龄由大到小的次序输出学生信息。用Java语言模拟实现该过程。
时间: 2024-02-15 11:03:15 浏览: 167
Java编写一个学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息
好的,以下是一个使用Java内置迭代器实现对学生信息按年龄由大到小排序的示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
public class Clas implements Iterable<Student> {
private ArrayList<Student> students = new ArrayList<>();
public void addStudent(Student student) {
students.add(student);
}
public void sortStudentsByAgeDesc() {
Collections.sort(students, Collections.reverseOrder(new StudentAgeComparator()));
}
@Override
public Iterator<Student> iterator() {
return students.iterator();
}
private static class StudentAgeComparator implements java.util.Comparator<Student> {
@Override
public int compare(Student s1, Student s2) {
return s1.getAge() - s2.getAge();
}
}
}
```
在上述代码中,我们定义了一个Clas类,该类包含一个ArrayList对象用于存储学生信息。我们还实现了Iterable接口,使得该类可以使用Java内置的迭代器进行遍历。同时,我们还定义了一个StudentAgeComparator类,用于按照学生年龄进行比较。
在使用这个类时,我们可以先添加若干个Student对象,然后调用sortStudentsByAgeDesc()方法对学生信息按年龄进行降序排序。最后,我们可以使用Java内置的foreach语句来遍历学生信息:
```java
Clas clas = new Clas();
clas.addStudent(new Student("Alice", 20));
clas.addStudent(new Student("Bob", 18));
clas.addStudent(new Student("Charlie", 22));
clas.sortStudentsByAgeDesc();
for (Student student : clas) {
System.out.println(student);
}
```
这样就能够按照学生年龄由大到小的次序输出学生信息了。
阅读全文