comprable和comparator的区别
(一)comprable和comparator两个接口都是用于比较的。Compartor接口是Java.util包中的接口,而Comparable是java.lang包中的接口
(二)comprable接口中只有一个 int compareTo(T o)方法,该方法返回一个整形值
comparator接口有两个方法 compare(Object obj1,Object obj2)和equals(Object obj)
(三) 其实实现了comprable接口的类是用于自身比较,而 实现comparator接口的类相当于一个比较器
现在我们用两种方式实现比较一个人的年龄,第一种方式用comprable接口
代码如下:
public class PersonComprabletest implements Comparable<Integer>{
public int age ;
public int compareTo(Integer age) {
if(this.age > age){
return -1;}
else if(this.age < age){
return 1;
}else{
return 0;}
}
public static void main (String args[]){
PersonComprabletest a = new PersonComprabletest();
PersonComprabletest b = new PersonComprabletest();
b.age = 10;
a.age = 4;
System.out.print(b.compareTo(a.age)) ;
}
}
第二种方式 实现 comparator接口
代码如下:
import java.util.Comparator;
public class PersonComparator implements Comparator<Integer>{
public int compare(Integer a, Integer b) {
if(a > b){
return 1;}
else if(a < b){
return -1;
}else{
return 0;
}
}
public static void main (String args[]){
Person p1 = new Person();
Person p2 = new Person();
p1.age = 5;
p2.age = 12;
System.out.print(new PersonComparator().compare(p1.age , p2.age));
}
}
class Person{
public int age;
}