Comparable
其含义是可比较的,如果对象所在的类实现了Comparable接口,这类对象就是可以进行大小比较,接口就是用于指定对象排序规则的
此接口强行对实现他的每个类的对象进行排序规则的。此接口强行对实现它的每个类的对象进行整体排序,此排序也被称为自然排序,类的compareTo方法被称为自然比较方法。强烈推荐使用自然排序与equals一致。所谓equals一致是针对类C的每一个Obj1和Obj2来说,当且仅当(Obj1.cpmpareTo(Obj2==0))与Obj1.equals(Obj2)具有相同的布尔值,类C的自然排序才叫做equals一致。
public interface Comparable<T>{
public int compareTo(T o);//必须实现的方法,这里定义两个对象的比较规则,如果相等返回0;如果当前对象大于参数o则返回整数1;如果当前对象小于参数o则返回负数-1.
}
为苹果类实现一个比较方法
public class Apple implements Compareable{
priavte double redius;//半径值
public int compateTo(Object obj){
if(obj!=null && obj instanceof Apple){
Apple app = (Apple)obj;
if(this.redius> app.redius){
return 1;
}else if(this.redius == app.redius){
return 0;
}
}
return -1;
}
}
冒泡算法的基本骨架
public class BubbleSort{
public void Sort(Comparable[] arr){
for(int i = 1;i<arr.length;i++){
for(int j = i; j<arr.length-i;j++){
if(arr[j].comparableTo(arr[j+1]) > 0){
Comparable tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
}