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
;
}