欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

分别用Comparable和Comparator两个接口对下列四位同学的成绩做降序排序,如果成绩一样, 那在成绩排序的基础上按照年龄由小到大排序。 姓名(String

发布时间:2025/3/17 编程问答 42 豆豆

代码

import java.util.*;/*3.分别用Comparable和Comparator两个接口对下列四位同学的成绩做降序排序,如果成绩一样,那在成绩排序的基础上按照年龄由小到大排序。姓名(String)年龄(int)分数(float)liusan 20 90.0Flisi 22 90.0Fwangwu 20 99.0Fsunliu 22 100.0F编写一个Student类用来实现Comparable<Student>接口,并在其中重写CompareTo(Student o)方法 在主函数中使用Comparable 与 Comparetor分别对ArrayList进行排序.*/ public class Homework3 {public static void main(String[] args) {List<Student> list = new ArrayList<>();list.add(new Student("liusan", 20, 90));list.add(new Student("lisi", 22, 90));list.add(new Student("wangwu", 20, 99));list.add(new Student("sunliu", 22, 100));Collections.sort(list, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {if (o1.score == o2.score){return o1.age - o2.age;}return (int) (o2.score - o1.score);}});for (Student s : list){System.out.println(s);}} }class Student implements Comparable<Student>{String name;int age;float score;public Student(String name, int age, float score) {this.name = name;this.age = age;this.score = score;}public Student() {}@Overridepublic int compareTo(Student o) {if (this.score == o.score){return this.age - o.age;}return (int) (o.score - this.score);}@Overridepublic String toString() {return this.name + "["+ this.age +"]:" + this.score;} }

总结

以上是生活随笔为你收集整理的分别用Comparable和Comparator两个接口对下列四位同学的成绩做降序排序,如果成绩一样, 那在成绩排序的基础上按照年龄由小到大排序。 姓名(String的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。