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<Cat>{
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<Dog>{
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();
}
}