更多: 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;
	}
}
Java如何对象列表进行多个字段排序

使用Comparator.thenComparing()方法可以按多个字段对对象列表进行排序

此方法返回一个字典顺序比较器和另一个比较器。
它提供与 SQL group by 子句相同的效果。

日期:2020-09-17 00:09:27 来源:oir作者:oir