I have a HashMap<String, Integer> list and I want to sort it by integers and be able to get a key in a certain order (for example: get the 3rd, or 5th key).
How do I go by doing this?
Asked
Active
Viewed 51 times
0
Adya
- 41
- 3
-
What do you mean by "I have a HashMap
list"? Do you mean `List – Pshemo Aug 21 '21 at 14:30>` or something else? Also what do you want to get as result when you "get the 3rd"? -
Basically, I'm working on a scoreboard, and I want the player to see their placement, so basically where they are positioned, using the values. – Adya Aug 21 '21 at 14:32
-
How about instead of using map using `List
` where ScoreInfo will be class holding `String name; Integer score`? – Pshemo Aug 21 '21 at 14:38
1 Answers
3
You can't sort a HashMap. The order of entries within a HashMap is kinda random.
You could use myMap.keySet() to extract the keys (in random order) and put them in a new ordered collection (= List or SortedSet), for example: new ArrayList<>(myMap.keySet());. And then sort this List.
Or you use a SortedMap with a custom Comparator instead of a HashMap.
Benjamin M
- 23,599
- 32
- 121
- 201