利用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); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 我要一个分身加定位两个功能的安卓app
- ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
- ¥15 IAR程序莫名变量多重定义
- ¥15 (标签-UDP|关键词-client)
- ¥15 关于库卡officelite无法与虚拟机通讯的问题
- ¥15 目标检测项目无法读取视频
- ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
- ¥100 求采集电商背景音乐的方法
- ¥15 数学建模竞赛求指导帮助
- ¥15 STM32控制MAX7219问题求解答