Я пытаюсь использовать метод .sort()
с arraylist
.
Мой метод public void sortSurname()
должен отсортировать по алфавиту все объекты по фамилии, эти объекты содержатся в массиве ArrayList<Contact> contacts
.
Может ли кто-нибудь найти проблему с этим кодом?
Вот что я написал до сих пор:
Контактный класс
package main;
public class Contact {
private String name, surname, cellphone;
private Genere genere;
public Contact(String name, String surname, String cellphone){
this.name=name;
this.surname=surname;
this.cellphone=cellphone;
}
public String getSurname() {
return surname;
}
}
Рубрика класс
public class Rubrica {
private ArrayList<Contact> contacts;
public Rubrica(){
contacts = new ArrayList<>();
}
public void sortSurname(){
contacts.sort((Contact c1, Contact c2) -> {
c1.getSurname().compareTo(c2.getSurname());
});
}
public void addContact(Contact c1){
contacts.add(c1);
}
}
Главный
package main;
public class Main {
public static void main(String[] args) {
Contact c1 = new Contact("Paolo", "Groviera", "338");
Contact c2 = new Contact("Paolo", "Groviera", "234");
Contact c3 = new Contact("Lampa", "Dino", "234");
Contact c4 = new Contact("Lampa", "Dina", "0234");
Rubrica r = new Rubrica();
r.addContact(c1);
r.addContact(c2);
r.addContact(c3);
r.addContact(c4);
r.sortSurname();
System.out.println(r);
}
}
Спасибо вам за помощь.
У меня тоже проблема с этим, я написал код на итальянском. Части выше переведены, так что вы предлагаете мне делать?
Проблема в том, что {}
является блоком и требует возврата. Попробуйте это так:
contacts.sort((Contact c1, Contact c2) -> {
return c1.getSurname().compareTo(c2.getSurname());
});
или забудьте {}
и просто сделайте
contacts.sort((Contact c1, Contact c2) ->
c1.getSurname().compareTo(c2.getSurname()));
или используйте интерфейс Компаратор и передайте ссылку на метод.
contacts.sort(Comparator.comparing(Contact::getSurname));
Избавьтесь от { }
public void sortSurname(){
contacts.sort((Contact c1, Contact c2) ->
c1.getSurname().compareTo(c2.getSurname());
);
}
Прочтите Как создать минимальный воспроизводимый пример. Тогда редактировать свой вопрос. В настоящее время это минимальное значение приятно, но также невоспроизводимое значение полностью.