Как отсортировать список, у которого объект имеет более одного свойства?
Теперь я использую linq4j.Я могу сортировать только одно свойство.Как отсортировать список, у которого объект имеет более одного свойства?Если linq4j не имеет этой функции, то как насчет другого метода ?Мой код здесь:
import java.util.Arrays; import java.util.List; import net.hydromatic.linq4j.Linq4j; import net.hydromatic.linq4j.function.*; public class Linq4jExample { public static class Employee { public final int empno; public final String name; public final int deptno; public Employee(int empno, String name, int deptno) { this.empno = empno; this.name = name; this.deptno = deptno; } public String toString() { return "Employee(empno: " + empno +",name: " + name + ", deptno:" + deptno + ")"; } } public static final Employee[] emps = { new Employee(100, "Fred", 10), new Employee(110, "Bill", 30), new Employee(120, "Bill", 10), new Employee(120, "Eric", 12), new Employee(130, "Janet", 13), }; public static final Function1<Employee, Integer> EMP_DEPTNO_SELECTOR = new Function1<Employee, Integer>() { public Integer apply(Employee employee) { return employee.deptno; } }; public static void main(String[] args) { List<Employee> filter=Linq4j.asEnumerable(Arrays.asList(emps)) .orderBy(new Function1<Employee,String>() { public String apply(Employee arg0) { return arg0.name; } }).toList(); } }
Код показывает, чтобы отсортировать список по имени,но если я хочу отсортировать список по имени,а затем по deptno, как это сделать?
Что я уже пробовал:
У меня есть попытка сортировать так, но это не работает.
List<Employee> filter=Linq4j.asEnumerable(Arrays.asList(emps)) .orderBy(new Function1<Employee,String>() { public String apply(Employee arg0) { return arg0.name; } }).orderBy(new Function1<Employee,Integer>() { public Integer apply(Employee arg0) { return arg0.deptno; } }).toList();