Comparable接口:
此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的comparaTo方法被称为它的自然比较方法
Comparator接口:
强行对某个对象collection进行整体排序的比较
实例:
创建两个类(Cat,Dog)
分别将Cat继承comparable,Dog继承comparatar
对两个或多个数据进行比较,以确定它们是否相等,或确定它们之间的大小关系及排列顺序
测试类
import java.util.Arrays;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums = {1,3,4,124,2,523,544,25};
Arrays.sort(nums);//将数组排序
System.out.println(Arrays.toString(nums));//输出数组
String[] name={"xiaomin","tiantian","meomei"};
Arrays.sort(name);
System.out.println(Arrays.toString(name));
Cat[] cats={new Cat("xiaoxiao",3),new Cat("xioawangba",4),new Cat("dadaguai",5)};
Arrays.sort(cats);
System.out.println(Arrays.toString(cats));
Dog[] dogs={new Dog("xiaoxiao",3),new Dog("xioawangba",4),new Dog("dadaguai",5)};
Arrays.sort(dogs,new Dog());
System.out.println(Arrays.toString(dogs));
}
}
子类Cat继承comparable
public class Cat implements Comparable{ private String name; private int age; public Cat(){ super(); } public Cat(String name,int age){ super(); this.name=name; this.age=age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Cat [name=" + name + ", age=" + age + "]"; } @Override public int compareTo(Cat o) { // TODO Auto-generated method stub return this.age-o.age; } }
子类Dog继承comparatar接口
import java.util.Comparator; public class Dog implements Comparator{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Dog [name=" + name + ", age=" + age + "]"; } public Dog(String name, int age) { super(); this.name = name; this.age = age; } public Dog() { super(); // TODO Auto-generated constructor stub } @Override public int compare(Dog arg0, Dog arg1) { // TODO Auto-generated method stub return arg0.getAge()-arg1.getAge(); } }



