使用Java写一个Student类实现comparable接口,使得一个类型为Student的ArrayList能够使用sort方法排序,按照年龄从小到大,如果年龄相同则按照成绩升序排序。通过标准输入读入8个学生的年龄和成绩,并输出排序后的结果。
时间: 2024-03-02 12:48:30 浏览: 72
好的,以下是实现代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Student implements Comparable<Student> {
private int age;
private int score;
public Student(int age, int score) {
this.age = age;
this.score = score;
}
public int getAge() {
return age;
}
public int getScore() {
return score;
}
@Override
public int compareTo(Student o) {
if (this.age == o.age) {
return Integer.compare(this.score, o.score);
}
return Integer.compare(this.age, o.age);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
ArrayList<Student> list = new ArrayList<>();
for (int i = 0; i < 8; i++) {
int age = input.nextInt();
int score = input.nextInt();
list.add(new Student(age, score));
}
Collections.sort(list);
for (Student s : list) {
System.out.println(s.getAge() + " " + s.getScore());
}
}
}
```
我们定义了一个`Student`类,包含年龄和成绩两个属性,实现了`Comparable`接口,重写了`compareTo`方法,用于比较两个学生之间的大小关系。在主函数中,我们通过标准输入读入8个学生的年龄和成绩,并将其加入到一个ArrayList中,然后调用`Collections.sort`方法进行排序,最后输出排序后的结果。
注意:为了方便起见,这里直接使用了标准输入,实际应用中可以根据需要进行修改。
阅读全文
相关推荐



















