2017-01-02 35 views
0

我的工作清單列表進行排序和下面是我當前的代碼片段的Java:排序列表的列表與中將sortOrder

我有員工POJO像下面

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

現在我有員工PO​​JO包含

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

我知道與Comparator作品的collections.sort。但不知道它是如何可能的?

在這方面幫助我。提前致謝。

+2

[按屬性排序自定義對象的ArrayList的可能的副本](http://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property) – abbath

+0

這是不明確的,重新努力實現。 –

+0

[這裏](http://stackoverflow.com/a/18441978/3042145)是如何對數組列表進行排序的示例。希望它有幫助 – kism3t

回答

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 );

+0

我必須在EmployeeProgram中設置員工「sortorder」和EmployeeProgram「sortorder」各自的最大值「programCount」。 – OpenSourceDev