溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

常用類API-Compare、Comparator

發(fā)布時(shí)間:2020-06-19 19:53:02 來(lái)源:網(wǎng)絡(luò) 閱讀:380 作者:glblong 欄目:開發(fā)技術(shù)

 

  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);  //直接對(duì)students對(duì)象排序 
  20.          
  21.         Caipan caipan = new Caipan();   //創(chuàng)建裁判對(duì)象 
  22.         Collections.sort(list,caipan);  //根據(jù)裁判來(lái)排序 
  23.         System.out.println(list); 
  24.          
  25.     } 
  26.  
  27. /** 
  28.  *  
  29.  *直接實(shí)現(xiàn)比較接口,重寫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,返回值負(fù)數(shù)、0、正數(shù)判斷大小 
  41.     { 
  42.         return o.age - this.age;  //由大到小排列 
  43.     } 
  44.      
  45.     /** 
  46.      * 名字按字母順序排列,直接調(diào)用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.  * 創(chuàng)建一個(gè)裁判來(lái)進(jìn)行比較,裁判需要實(shí)現(xiàn)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.      

 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI