java(10)ComprableとCompratorのオブジェクト属性の比較
1829 ワード
一、CompratorとComprableの比較 Compparableは、並べ替えインターフェースである。一つのクラスがComprableインターフェースを実現すれば、「このクラスのサポートランキング」を意味します。 Compratorはコンパレータです。私たちはある種類の順序を制御する必要があるなら、「この種類のコンパレータ」を作って並べ替えられます。 Comprableは「内部比較器」に相当するが、Compratorは「外部比較器」に相当する。
二、コードのデモンストレーション
Comprable(内部比較器)
二、コードのデモンストレーション
Comprable(内部比較器)
//
class Dog implements Comparable {
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 int compareTo(Dog o) {
return this.age - o.age; // Arrays.sort()
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Comprator(外部比較器)// Comparator
class ReverSortDogName implements Comparator {
@Override
public int compare(Dog o1, Dog o2) {
return o2.getName().compareTo(o1.getName());
}
}
実行import java.util.Arrays;
import java.util.Comparator;
public class {
public static void main(String[] args) {
Dog[] dogs = new Dog[]{new Dog(" ", 23), new Dog("xie", 18), new Dog(" ", 12)};
// Arrays.sort(dogs);Comparable , age
// Arrays.sort(dogs, new ReverSortDogName()); Comparator, name
System.out.println(Arrays.toString(dogs));
}
}