为了按内容来比较属于同一类型的两个对象的“大小”,JDK中定义了一个Comparable接口用于供程序员自定义两个对象的比较规则,此接口声明如下: public interface Comparable { int compareTo(Object other); } 实现了此接口的两个对象(不妨称之为X和Y)可以相互比较:两对象X和Y相等,compareTo()方法返回0,X小于Y时compareTo()方法返回一个负数(通常设为-1),X大于Y时返回正数(通常设为1)。 编写一个方法,接收一个Comparable对象数组作为参数,然后,此方法对此数组中的对象进行升序排列。
Arrays.sort(objs);
Arrays.sort(objs);同时,Arrays工具类通过重载技术,可以支持所有类型数组的排序功能。可以查看一下JDK API的帮助
http://gceclub.sun.com.cn/Java_Docs/jdk6/html/zh_CN/api/index.html
import java.util.Arrays;
public class TestComp{ public static void main(String[] args){
Dogs d1 = new Dogs("wangwang",1);
Dogs d2 = new Dogs("xiaoke",3);
Dogs[] dogs = new Dogs[2];
dogs[0] = d1;
dogs[1] = d2;
Arrays.sort(dogs);
System.out.println(Arrays.asList(dogs));
}
}class Dogs implements Comparable{
private String username;
private int age; public Dogs(String username,int age){
this.username=username;
this.age=age;
} public int compareTo(Object o){
return this.age-((Dogs)o).age;
} public String toString(){
return username+":"+age;
}
}