Board logo

標題: [作業] 自訂排序 (二) [打印本頁]

作者: tonyh    時間: 2021-7-3 15:26     標題: [作業] 自訂排序 (二)

本帖最後由 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. }
複製代碼

作者: 蔡幸融    時間: 2021-7-10 13:43

此帖僅作者可見
作者: 林侑成    時間: 2021-7-10 14:43

此帖僅作者可見
作者: 陳泓瑜    時間: 2021-7-10 14:45

此帖僅作者可見
作者: 蔡依宸    時間: 2021-7-10 14:45

此帖僅作者可見
作者: 洪藜芸    時間: 2021-7-10 14:45

此帖僅作者可見
作者: 蔡季庭    時間: 2021-7-10 14:46

此帖僅作者可見
作者: 陳智鈞    時間: 2021-7-10 15:11

此帖僅作者可見
作者: 戴偉宸    時間: 2021-7-10 15:16

此帖僅作者可見




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2