Comparable interface 在java.lang package內。
它只有一個method - compareTo(Object)。
只可以提供單一排序(arrays或者lists)例如 ID號碼、姓名、地址等等。
compareTo(Object obj) method
class Student implements Comparable<Student>{
int rollno;
String name;
int age;
Student(int rollno,String name,int age){
this.rollno=rollno;
this.name=name;
this.age=age;
}
public int compareTo(Student st){
if(age==st.age)
return 0;
else if(age>st.age)
return 1;
else
return -1;
}
}
主要的Class:
import java.util.*;
public class MainSort{
public static void main(String args[]){
ArrayList<Student> al=new ArrayList<Student>();
al.add(new Student(101,"Vijay",23));
al.add(new Student(106,"Ajay",27));
al.add(new Student(105,"Jai",21));
Collections.sort(al);
for(Student st:al){
System.out.println(st.rollno+" "+st.name+" "+st.age);
}
}
}
• 一個負數,即是現在的參數比特定的參數小。
• 零,即是現在的參數等於特定的參數。
• 一個正數,即是現在的參數比特定的參數大。
String class 和Wrapper classes 預設了實作Comparable interface。所以當大家的物件是以String class 或Wrapper classes 存儲在list/set/map,就會自動預設使用Comparable interface。
參考文章/網站/書本: