abstract method compare(Object,Object)
При компиляции нижеследующей программы:
import java.util.*;
class Dog implements Comparator, Comparable {
private String name;
private int age;
Dog() {
}
Dog(String n, int a) {
name = n;
age = a;
}
public String getDogName() {
return name;
}
public int getDogAge() {
return age;
}
// Переопределяем метод compareTo
public int compareTo(Dog d) {
return (this.name).compareTo(d.name);
}
// Переопределяем метод compare для сортировки возраста
public int compare(Dog d, Dog d1) {
return d.age - d1.age;
}
}
public class Example {
public static void main(String args[]) {
// Берём список элементов Dog
List list = new ArrayList();
list.add(new Dog("Шегги", 3));
list.add(new Dog("Лэси", 2));
list.add(new Dog("Роджер", 10));
list.add(new Dog("Томми", 4));
list.add(new Dog("Тамми", 1));
Collections.sort(list); // Сортируем список массивов
for(Dog a: list) // Выводим сортированный список имён
System.out.print(a.getDogName() + ", ");
// Сортируем список массивов, используя компаратор
Collections.sort(list, new Dog());
System.out.println(" ");
for(Dog a: list) // Выводим сортированный список возрастов
System.out.print(a.getDogName() +" : "+ a.getDogAge() + ", ");
}
}
