利用ArrayList来存储Student对象,一个学生对象包括姓名和成绩两个属性。定义Student类,包括姓名和成绩两个属性,并定义一个方法compareTo,比较两个学生的成绩,覆盖toString方法。在测试类中实现:接收学生的总数,然后创建Student对象,放入ArrayList,要求按成绩由小到大的顺序存放,最后循环输出每个学生的信息
1条回答 默认 最新
- 笑死鱼啦 2022-05-29 19:17关注
答题不易, 有帮助的话希望点下采纳~
完成效果:代码:
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); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 网络科学导论,网络控制
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)