Sort an ArrayList based on an object field [duplicate]
Possible Duplicate:
Sorting an ArrayList of Contacts
I am storing DataNode
objects in an ArrayList
. The DataNode
class has an integer field called degree
.
I want to retrieve DataNode
objects from nodeList in the increasing order of degree
. How can I do it.
List<DataNode> nodeList = new ArrayList<DataNode>();
Solution 1:
Use a custom comparator:
Collections.sort(nodeList, new Comparator<DataNode>(){
public int compare(DataNode o1, DataNode o2){
if(o1.degree == o2.degree)
return 0;
return o1.degree < o2.degree ? -1 : 1;
}
});
Solution 2:
Modify the DataNode class so that it implements Comparable interface.
public int compareTo(DataNode o)
{
return(degree - o.degree);
}
then just use
Collections.sort(nodeList);