如何在Java中对两件事进行排序? publicstaticvoidmain(字符串[]args){ ArrayList unsorted=loadEmployee(“NameList.csv”,100); Collections.sort(未排序,(雇员o2,雇员o1)->o1.getFirstName().compareTo(o2.getFirstName()); 未排序的.forEach((雇员)->System.out.println(雇员));

如何在Java中对两件事进行排序? publicstaticvoidmain(字符串[]args){ ArrayList unsorted=loadEmployee(“NameList.csv”,100); Collections.sort(未排序,(雇员o2,雇员o1)->o1.getFirstName().compareTo(o2.getFirstName()); 未排序的.forEach((雇员)->System.out.println(雇员));,java,sorting,Java,Sorting,这是按字母顺序打印名字的。但是你如何先按名字然后按ID排序呢? 我有Employee类,有stringid,stringfirstname。 学习收藏。在此处排序。您正在寻找: 使用集合#排序: public static void main(String[] args) { ArrayList<Employee> unsorted = loadEmployee("NameList.csv", 100); Collections.sort(unsorted,(E

这是按字母顺序打印名字的。但是你如何先按名字然后按ID排序呢? 我有
Employee
类,有
stringid,stringfirstname
。 学习
收藏。在此处排序。

您正在寻找:

使用
集合#排序

public static void main(String[] args) {

    ArrayList<Employee> unsorted = loadEmployee("NameList.csv", 100);


    Collections.sort(unsorted,(Employee o2, Employee o1)-> o1.getFirstName().compareTo(o2.getFirstName() ));


    unsorted.forEach((Employee)-> System.out.println(Employee));

这将首先按
员工的名字进行排序,如果不同
员工的两个名字相等,则按ID进行排序。

可能重复的@ErnestKiwele在我看来不像是重复的,因为它只按单个字段而不是多个字段进行排序。
List<Employee> unsorted = loadEmployee("NameList.csv", 100);

Collections.sort(unsorted, Comparator.comparing(Employee::getFirstName)
                                     .thenComparing(Employee::getId));

unsorted.forEach(System.out::println);
loadEmployee("NameList.csv", 100).stream()
                                 .sorted(Comparator.comparing(Employee::getFirstName)
                                                   .thenComparing(Employee::getId))
                                 .forEach(System.out::println);