import java.util.*;
class HashSortbyValue
{
public static void main(String []args)
{
HashMap someMap= new LinkedHashMap();
someMap.put("key1",1);
someMap.put("key2",3);
someMap.put("key3",2);
System.out.println("Before Sorting = "+someMap);
List keys = new ArrayList(someMap.keySet());
List values=new ArrayList(someMap.values());
someMap.clear();
TreeSet sortedMap= new TreeSet(values);
Object[]sortedSet = sortedMap.toArray();
for(int i=0;i<sortedSet.length;i++)
{
someMap.put(keys.get(values.indexOf(sortedSet[i])),sortedSet[i]);
}
System.out.println("After Sorting = "+someMap);
}
}
1 Comments
This article at takes a different approach using a comparator.
ReplyDelete