这里有录入3个学生数据,主类Main的main方法从控制台获取三个学生数据,并完成对三个学生的排序,并输出。
本题目给出主方法的调用设计,请根据分析,写出Student类的定义
请完成代码的补充工作,使得排序工作按照学生的年龄进行排序。
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Student[] stus = new Student[3];
for(int i=0;i<3;i++){
stus[i] = new Student(sc.nextInt(),sc.nextLine());
}
Arrays.sort(stus);
System.out.println(Arrays.toString(stus));
}
}
/* 请在这里填写答案 */
在这里给出一组输入。例如:
23 A
21 B
25 C
在这里给出相应的输出。例如:
[Student{age=21, name=' B'}, Student{age=23, name=' A'}, Student{age=25, name=' C'}]
想知道代码怎么敲,非常感谢
学生类这样写试试,要是学生还有其他属性你得自己添加
public class Student implements Comparable<Student> {
//成员变量name
private String name;
private int age;
//构造方法
public Student(String name) {
this.name = name;
}
//get方法
public String getName() {
return this.name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int compareTo(Student o) {
return this.age - o.age;
}
}
其实就是创建一个类实现comparable接口就行 参考下
如有帮助,请采纳
public class Student implements Comparable{
private Integer age;
private String name;
@Override
public int compareTo(Object o) {
Student student = (Student) o;
return this.age.compareTo(student.age);
}
public Student(Integer age, String name) {
this.age = age;
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Student[] stus = new Student[3];
for(int i=0;i<3;i++){
stus[i] = new Student(sc.nextInt(),sc.nextLine());
}
Arrays.sort(stus);
System.out.println(Arrays.toString(stus));
}
}
结果