1355 1355 - 19 days ago 5
Java Question

Sort a java collection object based on one field in it

How will sort a collection in java.

I have a collection

Collection<AgentSummaryDTO> agentDtoList = new ArrayList<AgentSummaryDTO>();


where

public class AgentSummaryDTO implements Serializable {
private Long id;
private String agentName;
private String agentCode;
private String status;
private Date createdDate;
private Integer customerCount;
}


Now I have to sort the collection
agentDtoList
based on the
customerCount
field

Answer

here is my "1liner":

Collections.sort(agentDtoList, new Comparator<AgentSummaryDTO>(){
   public int compare(AgentSummaryDTO o1, AgentSummaryDTO o2){
      return o1.getCustomerCount() - o2.getCustomerCount();
   }
});

UPDATE for Java 8:

Collections.sort(agentDtoList, (o1, o2) ->
                 o1.getCustomerCount() - o2.getCustomerCount());

..it expects getter AgentSummaryDTO.getCustomerCount()

Comments