比較器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));
}
}