java中的Comparable接口


 

類對象之間比較“大小”往往是很有用的操作,比如讓對象數組排序時,就需要依賴比較操作。對於不同的類有不同的語義。如Student類,比較2個學生對象可以比較他們的score分數來評判。

Java不支持預算符重載,我們通過實現Comparable接口達到相同的目的。當類實現了Comparable接口,則認為這個類的對象之間是可比較的。

 

Comparable是java SDK中的一個內置的泛型接口。

源代碼:(很簡單,只有規定了一個接口方法)

public interface Comparable<T> {
   public int compareTo(T o);

//按照規定:如果 this 比 o 小,則返回一個負數,如果 this 比 o 大,則返回正數,否則返回0

}

 

 

 

例子

public class Test {

    
    public static void main(String[] args) {
        
        
        Student[] students = { new Student("bob", 90.0)  , new Student("jack", 89.0),new Student("mary", 99.0)};
        
        
        Arrays.sort(students);
        
        for(Student s:students)
            System.out.println(s);

    }
}


class Student implements Comparable<Student>
{

    
    Student(String name,double score)
    {
        this.name = name;
        this.score = score;
    }
    
    private double score;
    private String name;
    
    
    
    @Override
    public int compareTo(Student o) {
        
        return Double.compare(this.score, o.score);     //借用Double包裝類本身的compare方法
    }
    
    @Override
    public String toString() {
        
        return String.format("name:%s  score:%f", name,score);
    }
}

 


免責聲明!

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



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