Comparable
- 1 用于比较的类实现Comparable接口
接口中有一个比较器方法,重写该方法compare,由一个对象调用去比较另一个对象,所以方法只需要传递另一个要比较的对象的引用就行。
class Cat implements Comparable<Cat>
{
int age;
String name;
public Cat()
{
}
public Cat(int a,String n)
{
this.age=a;
this.name=n;
}
@Override
public int compareTo(Cat c) {
return this.age-c.age;
}
}
Comparator
- 2 编写一个Comparator类去实现comparable接口,不用再去更改需要比较的类,重写继承自接口的compare方法,因为是外部类去比较两个对象是否相等,需要传递两个对象的引用。
class CatComparator implements Comparator<Cat>
{
@Override
public int compare(Cat c1, Cat c2) {
return c1.age-c2.age;
}
}
public int compare(Object o1,Object o2)
{
return o1.age-o2.age;
}