0

I'm working on sorting of list of lists and below is my current code snippet

I have employee POJO as like below

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

Now i have employee POJO contains

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

Now, EmployeeProgram object contains

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

Now, i want to assign sortOrder for "Employee" as well as "EmployeeProgram"

I know collections.sort with Comparator works. but not sure how it can be ?

Help me in this context. Thanks in advance.

OpenSourceDev
  • 41
  • 2
  • 9
  • 2
    Possible duplicate of [Sort ArrayList of custom Objects by property](http://stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property) – abbath Jan 02 '17 at 13:07
  • This is unclear of what you're trying to achieve. – Muli Yulzary Jan 02 '17 at 13:11
  • [Here](http://stackoverflow.com/a/18441978/3042145) is a sample how sorting of array lists can be done. Hope it helps – kism3t Jan 02 '17 at 13:13

1 Answers1

0

You can implement Comparable interface then override compareTo method as follow

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

repeat same for EmployeeProgram class and override this method

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

and use

Collection.sort(employeesList);

manj1790
  • 104
  • 7
  • i have to set the Employee "sortorder" & EmployeeProgram "sortorder"with respective to maximum "programCount" in EmployeeProgram. – OpenSourceDev Jan 02 '17 at 15:00