java HashMap sorting <String,Integer> . How to sort it?
Solution 1
A HashMap
is an unordered collection. It has no sort order. Even a TreeMap
will sort by key, not value.
If you want to prepare a sorted list by the sort order of the values, you'll have to create an appropriate object, such as an ArrayList<Map.Entry<String,Integer>>
, iterate over your HashMap
and insert all the entries, and then call Collections.sort
with a collation function.
Solution 2
If you want sorted map, HashMap isn't the best approach.
I'd suggest taking a look at TreeMap
as it is sorted. You can set the comparator to compare the values instead of the keys, as they do in this answer:
https://stackoverflow.com/a/1283722/975959
Solution 3
ArrayList<Integer> sortedHashMap=new ArrayList<Integer>();
for("your Object" m : degree.values())
{
sortedHashMap.add(m);
}
collections.sort(sortedHashMap);
so ,you can print your hashMap as sorted hashMap!
Hardik
Updated on June 06, 2022Comments
-
Hardik almost 2 years
Possible Duplicate:
How to sort a Map<Key, Value> on the values in Java?In my project, I have taken a HashMap like this
HashMap degree = new HashMap();
Suppose I have:
degree.put("a",5); degree.put("b",2); degree.put("c",4); degree.put("d",2); degree.put("e",3); degree.put("f",5);
Now I have to Sort this list according to given Integer values
Sorted HashMap Should be :
{a=5, f=5, c=4, e=4, b=4, d=2}
How I can do this ?