I am trying to sort map elements (based on values) by using Collections.sort(). The problem is that my program sorts the elements in descending order instead of sorting it in ascending order. How can I sort it in ascending order? Below is my code.
package hashTableRR;
import java.util.*;
import java.util.Map.Entry;
public class OrderByValue {
public static void main(String [] args){
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(1, 4);
map.put(2, 6);
map.put(3, 1);
map.put(4, 1);
map.put(6, 8);
map.put(7, 5);
Set<Entry<Integer, Integer>> set = map.entrySet();
List<Entry<Integer, Integer>> list = new ArrayList<Entry<Integer, Integer>>(set);
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>()
{
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2){
return(o2.getValue()).compareTo(o1.getValue());
}
}
);
System.out.println("Keys\t\tValues");
for(Map.Entry<Integer, Integer> entry:list)
{
System.out.println(" "+entry.getKey()+"\t\t "+entry.getValue());
}
}
}