返回列表 發帖

[作業] 自訂排序 (二)

本帖最後由 tonyh 於 2021-7-10 15:06 編輯

承上題,以陣列取代原本的集合,陣列中包含五個 Student 物件,以 Arrays 類別下的 sort() 方法搭配自定的比較器,分別完成「依分數遞減排序」及「依座號遞增排序」之操作練習。

  1. import java.util.Arrays;
  2. import java.util.Comparator;

  3. public class Ch02 {

  4.         Student stu[]=new Student[5];

  5.         Ch02()
  6.         {
  7.                 stu[0]=new Student(4, "大雄", 60);       
  8.                 stu[1]=new Student(1, "小叮噹", 90);
  9.                 stu[2]=new Student(3, "宜靜", 100);
  10.                 stu[3]=new Student(2, "阿福", 70);
  11.                 stu[4]=new Student(5, "技安", 20);

  12.                 System.out.println("原始資料:");
  13.                 show();

  14.                 Arrays.sort(stu, new MyComparator1());
  15.                 System.out.println("依分數遞減排序:");
  16.                 show();

  17.                 Arrays.sort(stu, new MyComparator2());
  18.                 System.out.println("依座號遞增排序:");
  19.                 show();
  20.         }

  21.         void show()
  22.         {
  23.                 System.out.println("座號\t姓名\t分數");
  24.                 System.out.println("-------------------");
  25.                 for(int i=0; i<stu.length; i++)
  26.                         System.out.println(stu[i].num+"\t"+stu[i].name+"\t"+stu[i].score);
  27.                 System.out.println();
  28.         }

  29.         class Student
  30.         {
  31.                 int num, score;
  32.                 String name;

  33.                 Student(int num, String name, int score)  //建構子; 建構函式; 建構方法
  34.                 {
  35.                         this.num=num;
  36.                         this.name=name;
  37.                         this.score=score;
  38.                 }
  39.         }

  40.         class MyComparator1 implements Comparator<Student>   //泛型
  41.         {
  42.                 @Override
  43.                 public int compare(Student o1, Student o2) {
  44.                         return o2.score-o1.score;
  45.                 }       
  46.         }

  47.         class MyComparator2 implements Comparator<Student>   //泛型
  48.         {
  49.                 @Override
  50.                 public int compare(Student o1, Student o2) {
  51.                         return o1.num-o2.num;
  52.                 }       
  53.         }

  54.         public static void main(String[] args) {
  55.                 new Ch02();
  56.         }
  57. }
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見
我是眾神之王XXX  I love you
0000000000

TOP

此帖僅作者可見
https://www.facebook.com/DABRiXPERT6584

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表