题目要求: 创建学生类:包括姓名、年龄两个属性,有参构造方法,创建集合存储学生对象(不少于五个)并遍历,要求按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序。“
时间: 2024-01-19 07:02:10 浏览: 104
好的,这是一个编程题目,我会根据你的要求来回答。以下是 Java 代码实现:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Student implements Comparable<Student> {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public int compareTo(Student other) {
if (this.age == other.age) {
return this.name.compareTo(other.name);
}
return Integer.compare(this.age, other.age);
}
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", 22));
students.add(new Student("Jack", 20));
students.add(new Student("Alice", 22));
students.add(new Student("Bob", 21));
students.add(new Student("Mary", 19));
Collections.sort(students);
for (Student student : students) {
System.out.println(student.getName() + " " + student.getAge());
}
}
}
```
这个程序创建了一个 `Student` 类,包含了姓名和年龄两个属性,并实现了 `Comparable` 接口,以便能够按照要求排序。
在 `main` 方法中,我们创建了一个包含五个学生对象的集合,并使用 `Collections.sort` 方法按照要求排序。最后遍历集合并输出结果。
注意,这个实现中使用了 Java 8 中的 Lambda 表达式,如果你使用的是 Java 7 或更早的版本,需要使用匿名内部类来实现 `Comparator` 接口。
阅读全文