分别用Comparable和Comparator两个接口对下列四位同学的成绩做降序排序,如果成绩一样, 那在成绩排序的基础上按照年龄由小到大排序。 姓名(String
生活随笔
收集整理的这篇文章主要介绍了
分别用Comparable和Comparator两个接口对下列四位同学的成绩做降序排序,如果成绩一样, 那在成绩排序的基础上按照年龄由小到大排序。 姓名(String
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
代码
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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: OJ1075: 聚餐人数统计(C语言)
- 下一篇: ZZULIOJ 1115: 数组最小值