Реализация интерфейса Comparable

154
30 апреля 2019, 16:10

Помогите реализовать интерфейс для класса 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);    
    } 
}
Answer 1

В вопросе вы спрашиваете про интерфейс, в коде же реализовано несколько компараторов. Если проблема в этом, то нужно дополнить описание класса ключевым словом 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 верните то что считаете нужным  
    }
}
READ ALSO
Может кто-то объяснить код построчно? [закрыт]

Может кто-то объяснить код построчно? [закрыт]

Это часть большого кода, в котором есть три четыре класса: OnlineStore, Good, ProductSearchSrvice и класс, где происходят основные действия и, где находиться...

175
Java взаимодействие потоков

Java взаимодействие потоков

возник такой вопрос Почему у меня поток, который я передаю в классе CalculateThread не возобновляет свою работу, когда метод run() выполнился

145
Не запускается код Java

Не запускается код Java

Доброе утро, товарищи программисты!

153
LibGDX обработка нажатий

LibGDX обработка нажатий

Некорректная работа InputProcessor на андроиде версии выше 51 (судя по проведенным тестам)

174