Java:使用sortOrder对列表进行排序

时间:2017-01-02 13:00:41

标签: java sorting collections comparator

我正在对列表列表进行排序,下面是我当前的代码段

我有员工POJO,如下所示

List<Employee> employeesList = new ArrayList<Employee>();
employeesList.add(employee01);
employeesList.add(employee02);

现在我有员工POJO包含

private int employeeId;
private String employeeName;
private List<EmployeeProgram> employeePrgoram = new ArrayList<EmployeeProgram>();
private int sortOrder;

现在,EmployeeProgram对象包含

private int programId;
private String programName;
private int programCount;
private int sortOrder;

现在,我想为“员工”以及“EmployeeProgram”分配sortOrder

我知道collections.sort与Comparator有效。但不确定它是怎么回事?

在这种情况下帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以实现Comparable接口,然后覆盖compareTo方法,如下所示

public int compareTo(Employee emp){  
  if(sortOrder==emp.sortOrder)  
    return 0;  
  else if(sortOrder>emp.sortOrder)  
    return 1;  
  else  
    return -1;  
}  

为EmployeeProgram类重复相同的操作 并覆盖此方法

public int compareTo(EmployeeProgram empProg){  
  if(sortOrder==empProg.sortOrder)  
    return 0;  
  else if(sortOrder>empProg.sortOrder)  
    return 1;  
  else  
    return -1;  
} 

并使用

Collection.sort(employeesList);