Comparable
public interface Comparable<T>{
public int compareTo(T o);
}
-
方法compareTo()返回-1,0,1表示比较结果。
- Comparable数组有两个不相容的对象(Sring,Shape),compareTo 将抛出ClassCastException异常。
- 基本类型不能作为Comparable传递,但是包装类可以——包装类实现了Comparable接口。
Comparator
public interface Comparator<T>{
int compare(T o1, T o2);
boolean equals(Object obj);
...
}
-
对一些对象的集合施加整体排序。——Collections.sort Arrays.sort
举例:泛型方法,参数之一为Comparator类型
public static <AnyType> AnyType findMax(AnyType [] arr, Comparator<? super AnyType> cmp)
{
int maxIndex=0;
for(int i=0;i<arr.length();i++){
if(compareTo(arr[i],arr[maxIndex])>0)
maxIndex=i;
}
return arr[maxIndex];
}