I'm trying to use .sort() method with an arraylist.
My method public void sortSurname() should sort alphabetically all the objects by their surname, these objects are contained in an arraylist ArrayList<Contact> contacts.
Could someone please find the issue with this code?
Here is what I've written so far:
Contact class

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 主要的 {
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);
    }
}

Thank you for the help.

推荐答案

问题是{}是一个区块,需要返回.试着这样做:

contacts.sort((Contact c1, Contact c2) -> {
   return  c1.getSurname().compareTo(c2.getSurname());
});

或者忘记{},就这么做吧

contacts.sort((Contact c1, Contact c2) -> 
    c1.getSurname().compareTo(c2.getSurname()));

或者使用Comparator接口并传递方法引用.

contacts.sort(Comparator.comparing(Contact::getSurname));

Java相关问答推荐

Javascript在边界中心调整ImageView大小

Select 按位运算序列

屏蔽字母数字代码的Java正则表达式

替换com. sun. jndi. dns. DnsContextFactory Wildfly23 JDK 17

如何使用值中包含与号的查询参数创建一个java.net.URI

在Spring Boot中使用哪个Java类来存储创建时间戳?

如何从Keyloak映射Hibernate实体中的用户

如何在一行中使用Dijkstra中的Java Stream

Domino Designer 14中的保存代理添加了重影库

Java17支持哪个MapR版本?

虚拟线程应该很快消亡吗?

在处理2个映射表时,没有更多的数据可从套接字读取

我如何为我的Java抵押贷款代码执行加薪操作(&Q)

如何使用MapStrCut转换双向链接

向Java进程发送`kill-11`会引发NullPointerException吗?

记录是类的语法糖吗?

没有Tomcat,IntelliJ如何在本地运行API?

无法在Java中获取ElastiCache的AWS CloudWatch指标

如何使用stream.allMatch()为空流返回false?

具有 DayOfWeek 列表的 JPA 实体