返回列表 發帖
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;

  4. public class Ch01 {

  5.         ArrayList<Student> stu=new ArrayList<Student>();

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

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

  15.                 Collections.sort(stu, new MyComparator1());   

  16.                 System.out.println("依座號遞增排序:");
  17.                 show();

  18.                 Collections.sort(stu, 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.size(); i++)
  27.                         System.out.println(stu.get(i).num+"\t"+stu.get(i).name+"\t"+stu.get(i).score);
  28.                 System.out.println();
  29.         }

  30.         class MyComparator1 implements Comparator<Student>
  31.         {
  32.                
  33.                 public int compare(Student o1, Student o2) {  
  34.                         return o1.num-o2.num;
  35.                 }      
  36.         }

  37.         class MyComparator2 implements Comparator<Student>
  38.         {      
  39.                 public int compare(Student o1, Student o2) {  
  40.                         return o2.score-o1.score;
  41.                 }      
  42.         }

  43.         class Student   
  44.         {
  45.                 int num, score;
  46.                 String name;

  47.                 Student(int n, String m, int s)
  48.                 {
  49.                         num=n;
  50.                         name=m;
  51.                         score=s;
  52.                 }
  53.         }

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

TOP

返回列表