1. import java.util.ArrayList; 
  2. import java.util.Collections; 
  3. import java.util.Comparator; 
  4.  
  5.  
  6.  
  7. public class fuxi6_compare 
  8.     public static void main(String[] args) 
  9.     { 
  10.         ArrayList<Students> list = new ArrayList<Students>(); 
  11.         list.add(new Students("acc"28)); 
  12.         list.add(new Students("aa"20)); 
  13.         list.add(new Students("ddd"25)); 
  14.         list.add(new Students("eee"22)); 
  15.         list.add(new Students("fff"26)); 
  16.         list.add(new Students("ggg"23)); 
  17.          
  18.          
  19.         Collections.sort(list);  //直接对students对象排序 
  20.          
  21.         Caipan caipan = new Caipan();   //创建裁判对象 
  22.         Collections.sort(list,caipan);  //根据裁判来排序 
  23.         System.out.println(list); 
  24.          
  25.     } 
  26.  
  27. /** 
  28.  *  
  29.  *直接实现比较接口,重写compareTo方法 
  30. */ 
  31. class Students implements Comparable<Students>  //记得添加泛型 
  32.     String name; 
  33.     int age; 
  34.     public Students(String name,int age) 
  35.     { 
  36.         this.name = name; 
  37.         this.age = age; 
  38.     } 
  39.     @Override 
  40.     public int compareTo(Students o)  //重写compareTo,返回值负数、0、正数判断大小 
  41.     { 
  42.         return o.age - this.age;  //由大到小排列 
  43.     } 
  44.      
  45.     /** 
  46.      * 名字按字母顺序排列,直接调用compareTo方法比较即可 
  47.      */ 
  48. //  @Override 
  49. //  public int compareTo(Person o) 
  50. //  { 
  51. //      return this.name.compareTo(o.name); 
  52. //  } 
  53.     @Override 
  54.     public String toString() 
  55.     { 
  56.         return "Students [name=" + name + ", age=" + age + "]"
  57.     } 
  58.   
  59.  
  60.  
  61. /** 
  62.  * 创建一个裁判来进行比较,裁判需要实现Comparator 
  63.  */ 
  64.  
  65. class Caipan implements Comparator<Students>//必须添加泛型 
  66.     @Override 
  67.     public int compare(Students stu1, Students stu2) 
  68.     { 
  69.         return stu1.age - stu2.age; 
  70.     } 
  71.  
  72. class Students 
  73.     String name; 
  74.     int age; 
  75.     public Students(String name,int age) 
  76.     { 
  77.         this.name = name; 
  78.         this.age = age; 
  79.     } 
  80.     @Override 
  81.     public String toString() 
  82.     { 
  83.         return "Students [name=" + name + ", age=" + age + "]"
  84.     } 
  85.