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>();
ArrayList allows duplicate values while HashSet doesn't allow duplicates values. Ordering : ArrayList maintains the order of the object in which they are inserted while HashSet is an unordered collection and doesn't maintain any order.
Remove duplicates in arraylist – Java 8. To remove the duplicates from the arraylist, we can use the java 8 stream api as well. Use steam's distinct() method which returns a stream consisting of the distinct elements comparing by object's equals() method. Collect all district elements as List using Collectors.
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; } });
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With