Помогите реализовать интерфейс для класса Per интерфейс Comparable.
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ComparatorDemo {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Joe", 24),
new Person("Pete", 18),
new Person("Chris", 21)
);
Collections.sort(people, new LexicographicComparator());
System.out.println(people);
Collections.sort(people, new AgeComparator());
System.out.println(people);
}
}
class LexicographicComparator implements Comparator<Person> {
@Override
public int compare(Person a, Person b) {
return a.name.compareToIgnoreCase(b.name);
}
}
class AgeComparator implements Comparator<Person> {
@Override
public int compare(Person a, Person b) {
return a.age < b.age ? -1 : a.age == b.age ? 0 : 1;
}
}
class Per {
String name;
int age;
Person(String n, int a) {
name = n;
age = a;
}
@Override
public String toString() {
return String.format("\nname=%s, age=%d", name, age);
}
}
В вопросе вы спрашиваете про интерфейс, в коде же реализовано несколько компараторов. Если проблема в этом, то нужно дополнить описание класса ключевым словом implements
с названием интерфейса и переопределить метод compareTo
нужным для вас образом:
class Person implements Comparable {
String name;
int age;
Person(String n, int a) {
name = n;
age = a;
}
@Override
public String toString() {
return String.format("\nname=%s, age=%d", name, age);
}
@Override
public int compareTo(Object o) {
return 0; // вместо 0 верните то что считаете нужным
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Это часть большого кода, в котором есть три четыре класса: OnlineStore, Good, ProductSearchSrvice и класс, где происходят основные действия и, где находиться...
возник такой вопрос Почему у меня поток, который я передаю в классе CalculateThread не возобновляет свою работу, когда метод run() выполнился
Некорректная работа InputProcessor на андроиде версии выше 51 (судя по проведенным тестам)