【问题标题】:Trying to sort an ArrayList of Objects by last name, then by first name if last names are the same尝试按姓氏对对象的 ArrayList 进行排序,如果姓氏相同,则按名字排序
【发布时间】:2019-05-06 11:30:18
【问题描述】:

我从一个数组创建了一个ArrayList

ArrayList <Person> PersonArrayList = new ArrayList<>(Arrays.asList(PersonArray));

最好的方法是什么?

尝试类似:

我创建了 getter getLastName()getFirstName()

【问题讨论】:

    标签: java sorting arraylist


    【解决方案1】:

    最简单的方法是使用comparingthenComparing

    personArrayList.sort(Comparator.comparing(Person::getLastName)
                                   .thenComparing(Person::getFirstName));
    

    【讨论】:

    • 'Person::getLastName' 是什么意思?
    • @Skemelio 它是一个method reference,相当于下面的lambda(Person person) -&gt; person.getLastName()。本质上,比较器Comparator.comparing(Person::getLastName) .thenComparing(Person::getFirstName) 首先提取人员的姓氏进行比较,如果相同,则提取人员的名字并进行比较。
    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多