詳細的說明看看sun的java API文檔,說的很清楚。
public interface Comparable {
public abstract int compareTo(Object o);
}
看Comparable的方法,可以看到是要用類繼承Comparable,再重寫compareTo(Object o);這個方法 。會把 o cast到當前的類。再在方法裏比較當前的對象和o 的順序或者大小,如果大於或者在集合裏是後面就返回正值,小於或者前面就返回負值,相當或者順序無關就返回0。
用法:
public class Some implements Comparable {
public Some () {
}
public int compareTo(Object obj) {
//比較this 中的屬性和(Some)obj中的屬性,做判斷。
}
}
排序或者比較時:
//在其他類中使用,s是一個集合裏有很多Some對象。
Collections.sort(s);
另一個Comparator
public interface Comparator {
public abstract int compare(Object o1, Object o2);
public abstract boolean equals(Object obj);
}
Comparator是在java.util這個包裏,一般來說當對於要根據其他屬性,或變量來定義一個類的中對象和另一個對象的順序時,會用到Comparator,如果正常按照自然順序排列,直接implements Comparable就可以。或者因爲它的compare方法傳入的是兩個要比較的對象,所以可以獨立於要比較的對象。
用法:
public class Some () {
}
import java.util.Comparator;
public class SomeComparator implements Comparator{
public int compare(Some s1,Some s2){
//寫代碼,獲得.sequence 和比較一下s1,s2,
//如果返回正值,s1大。如果返回負值,s2大。
}
在其他類,你需要排序的地方
public Collection getcollectionOrderby(List l) {
///l裏面都是Some的對象
retuen Collections.sort(l,new SomeComparator());
}
對於下面的也通用:
Arrays.{binarySearch(), sort()}, Collections.{binarySearch(), max(), min(), sort()},
2. Collections 是JAVA中一個實用類,用來對Collection,ArrayList,Set等進行基本的操作,封裝了常用的方法,都是靜態的,可以直接調用。
Collection是一個interface,他是JAVA中所有Collection Framework裏的根節點,其他集合類都要繼承他。看API有說明。