更多: zhilu jiaocheng
对多个字段进行排序
使用 thenComparing()创建能够按多个字段排序的 Comparator示例:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class JavaSort
{
public static void main(String[] args)
{
ArrayList<Employee> employees = getUnsortedEmployeeList();
// 先根据FirstName排序,再根据LastName排序
Comparator<Employee> compareByName = Comparator
.comparing(Employee::getFirstName)
.thenComparing(Employee::getLastName);
Collections.sort(employees, compareByName);
System.out.println(employees);
}
private static ArrayList<Employee> getUnsortedEmployeeList()
{
ArrayList<Employee> list = new ArrayList<>();
list.add( new Employee(2, "JackLi", "Gupta") );
list.add( new Employee(1, "JackLi", "Gussin") );
list.add( new Employee(4, "BobRobert", "Sux") );
list.add( new Employee(5, "Neon", "Piper") );
list.add( new Employee(3, "Tomm", "Beckham") );
list.add( new Employee(7, "JackLi", "Beckham") );
list.add( new Employee(6, "BobRobert", "Suxena") );
return list;
}
}
使用Comparator.thenComparing()方法可以按多个字段对对象列表进行排序
此方法返回一个字典顺序比较器和另一个比较器。
它提供与 SQL group by 子句相同的效果。
日期:2020-09-17 00:09:27 来源:oir作者:oir
