比较器Comparable和Comparator的使用
Comparable:为内部比较器
Comparator:为外部比较器
Comparable的使用
public class Test {
public static void main(String[] args) {
Car[] cars= {new Car("奥迪", 12),
new Car("奔驰",18),
new Car("qq",10)
};
Arrays.sort(cars);
System.out.println(Arrays.toString(cars));
}
}
class Car implements Comparable<Car> {
private String name;
private double age;
public Car(String name, double age) {
this.name = name;
this.age = age;
}
@Override
public int compareTo(Car o) {
return Double.compare(this.age,o.age);
}
}
Comparator的使用
Dog实体类:
public class Dog {
private String name;
private int age;
public Dog(String name, int age) {
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 "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
MyComparator类:
public class MyComparator implements Comparator<Dog> {
@Override
public int compare(Dog o1, Dog o2) {
return o1.getAge()-o2.getAge();
}
}
测试类:
public class Test {
public static void main(String[] args) {
Dog[] dogs={
new Dog("耀龙",30),
new Dog("鸡儿龙",18),
new Dog("haha",17)
};
Arrays.sort(dogs,new MyComparator());
System.out.println(Arrays.toString(dogs));
}
}