Board logo

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

作者: 李泳霖    時間: 2023-1-13 19:58     標題: 自訂排序 (二)

本帖最後由 李泳霖 於 2023-3-18 09:54 編輯

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

  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;

  4. public class P4 {
  5.         Student stu[]=new Student[5];
  6.         P4()
  7.         {
  8.                 stu[0]=new Student(4, 60, "大雄");
  9.                 stu[1]=new Student(1, 90, "小叮噹");
  10.                 stu[2]=new Student(3, 100, "宜靜");
  11.                 stu[3]=new Student(2, 70, "阿福");
  12.                 stu[4]=new Student(5, 20, "技安");
  13.                 System.out.println("原始資料");
  14.                 show();
  15.                 /*Collections.sort(al,new MyComparator1());
  16.                 System.out.println("依座號遞增:");
  17.                 show();
  18.                 Collections.sort(al,new MyComparator2());
  19.                 System.out.println("依成績遞減:");
  20.                 show();*/
  21.         }
  22.         void show()
  23.         {
  24.                 System.out.println("座號\t姓名\t分數");
  25.                 System.out.println("----------------------");
  26.                 for (int i = 0; i < stu.length; i++) {
  27.                         System.out.println(stu[i].n+"\t"+stu[i].name+"\t"+stu[i].s+"\t");

  28.                 }
  29.         }
  30.         class MyComparator1 implements Comparator<Student>
  31.         {

  32.                 public int compare(Student o1, Student o2) {
  33.                         // TODO 自動產生的方法 Stub
  34.                         return o1.n-o2.n;
  35.                 }


  36.         }
  37.         class MyComparator2 implements Comparator<Student>
  38.         {

  39.                 @Override
  40.                 public int compare(Student o1, Student o2) {
  41.                         // TODO 自動產生的方法 Stub
  42.                         return o2.s-o1.s;
  43.                 }
  44.         }
  45.         class Student
  46.         {
  47.                 int n,s;
  48.                 String name;
  49.                 Student(int n,int s,String name)
  50.                 {
  51.                         this.n=n;
  52.                         this.name=name;
  53.                         this.s=s;
  54.                 }
  55.         }

  56.         public static void main(String[] args) {
  57.                 new P4();
  58.         }
  59. }
複製代碼

作者: 李泳霖    時間: 2023-1-13 19:59

此帖僅作者可見
作者: 張淯祺    時間: 2023-3-11 12:00

此帖僅作者可見
作者: 張淯祺    時間: 2023-3-18 10:50

此帖僅作者可見
作者: 王銘鴻    時間: 2023-3-18 10:50

此帖僅作者可見
作者: 曾宥程    時間: 2023-3-18 10:53

此帖僅作者可見
作者: 林羿丞    時間: 2023-3-18 10:53

此帖僅作者可見




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