// Original class Dog
class Dog{
String name;
int age;
}
//Case 1
class Dog implements Comparable<Dog>{
//compareTo() implementation
}
//Case2
class Dog implements Comparator<Dog>{
// compare() implementation
}
//Case 3
class DogNameComparator implements Comparator<Dog>{
// compare() implementation
}
Collection.sort(dogList);
Collectios.sort(dogList,new DogNameComparator());
Collection.sort(dogList,new Dog());
Comparatorが元のクラスを変更しないと言っても、元のクラスは実際には変更されません。
私はコンセプトを正しく理解していないかもしれませんが、私にそれを教えてください。「Comparableは元のクラスに影響を及ぼしますが、Comparator doesnt」とはどういう意味ですか?
あなたの例に欠陥がある(または不完全である)場合、2番目の例が 'Comparator'自体を提供する必要はありません(実際には見分けが困難になります)。しかし、第3の例が「犬」とは独立していることに注意してください。 –