利用ArrayList来存储Student对象,一个学生对象包括姓名和成绩两个属性。定义Student类,包括姓名和成绩两个属性,并定义一个方法compareTo,比较两个学生的成绩,覆盖toString方法。在测试类中实现:接收学生的总数,然后创建Student对象,放入ArrayList,要求按成绩由小到大的顺序存放,最后循环输出每个学生的信息
答题不易, 有帮助的话希望点下采纳~
完成效果:
代码:
import java.util.Comparator;
public class Student implements Comparable{
https://img-mid.csdnimg.cn/release/static/image/mid/ask/509410328356192.png "#left")
//定义Student类,包括姓名和成绩两个属性,并定义一个方法compareTo,比较两个学生的成绩,覆盖toString方法。
//1.定义姓名和成绩两个属性
private String name;
private Integer score;
public Student(String name, Integer score) {
this.name = name;
this.score = score;
}
//2.实现Comparable接口, 并实现compareTo方法, 降序
@Override
public int compareTo(Object o) {
Student stu =(Student) o;
//降序
return stu.getScore()-this.getScore();
//升序
// return this.getScore()-stu.getScore();
}
//3.私有属性,添加set get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
//4..重写toString方法
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
import java.util.ArrayList;
import java.util.Collections;
public class Test {
public static void main(String[] args) {
//创建ArrayList集合
ArrayList<Student> list = new ArrayList<>();
//添加学生对象
Collections.addAll(list,new Student("张三",90),new Student("李四",87),new Student("王五",64)
,new Student("赵六",98));
//使用student的排序逻辑进行排序
Collections.sort(list);
//循环打印集合
for (Student stu : list) {
System.out.println(stu);
}
}
}