如何在Java中对两件事进行排序? publicstaticvoidmain(字符串[]args){ ArrayList unsorted=loadEmployee(“NameList.csv”,100); Collections.sort(未排序,(雇员o2,雇员o1)->o1.getFirstName().compareTo(o2.getFirstName()); 未排序的.forEach((雇员)->System.out.println(雇员));
这是按字母顺序打印名字的。但是你如何先按名字然后按ID排序呢? 我有如何在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
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);