java排序


一.背景

    java的比較器有兩類,分別是Comparable接口和Comparator接口。

 

二.代碼示例

  1.Comparator代碼

    

//構造一個排序比較器
Comparator comparator = new Comparator<String>() {
     @Override
     public int compare(String o1, String o2) {
         /***
          *該函數返回值r 
          * r > 0, o1排到o2后面
          * r < 0, o1排在o2前面
          * r ==0 , o1和o2順序不變
          */
         if(o1 > o2)
            return 1;
         else(o1 < o2)
            return -1;
         else return 0;
     }
}
//數組排序
String[] str = new String[5];
Arrays.sort(str, comparator);
//集合排序
ArrayList<String> list = new ArrayList<String>();
Collections.sort(list, comparator);

 

 2.Comparable代碼

    

class Student implements Comparable<Student>{   
    private int age;  
      
    public Student(int age) {   
        this.age = age;  
    }  
  
    @Override  
    public int compareTo(Student o) {
         /***
          *該函數返回值r 
          * r > 0, 當前對象排到o后面
          * r < 0, 當前對象排在o前面
          * r ==0 , 當前對象和o順序不變
          */
        if(this.age>o.age)  
          return 1;
        else if(this.age<o.age)  
          return -1;  
        else  
          return 0;  
    }  
}
//數組排序
Student stuArray[]={new Student(20),  
                new Student(22),  
                new Student(20),  
                new Student(26)};  
Arrays.sort(stuArray);  

//數組排序
ArrayList<Student> stuList[]=new ArrayList<Student>(Arrays.asList(new Student(20),  
                new Student(22),  
                new Student(20),  
                new Student(26)));  
Collections.sort(stuList); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM