How to return a list of keys from a Hash Map?
Solution 1
Use the keySet()
method to return a set with all the keys of a Map
.
If you want to keep your Map ordered you can use a TreeMap
.
Solution 2
Using map.keySet()
, you can get a set of keys. Then convert this set into List
by:
List<String> l = new ArrayList<String>(map.keySet());
And then use l.get(int)
method to access keys.
PS:- source- Most concise way to convert a Set<String> to a List<String>
Solution 3
List<String> yourList = new ArrayList<>(map.keySet());
This is will do just fine.
Solution 4
map.keySet()
will return you all the keys. If you want the keys to be sorted, you might consider a TreeMap
Solution 5
Since Java 8:
List<String> myList = map.keySet().stream().collect(Collectors.toList());
![idungotnosn](https://i.stack.imgur.com/gZSlY.png?s=256&g=1)
idungotnosn
Updated on July 05, 2022Comments
-
idungotnosn almost 2 years
I'm currently trying to make a program that conjugates verbs into Spanish. I've created a Hash Table that contains a key and an instantiation of the object Verb. The key is a string that has the infinitive form of the verb (for example, "hablar"). This is the code that I have so far for the hash map:
public class VerbHashMap { HashMap<String, Verb> verbHashMap; public VerbHashMap(){ verbHashMap = new HashMap(); } }
Each verb's key in the HashMap is based on the infinitive form of the verb. For example, the string "hablar" is the key for a Spanish verb. The class Verb has a method called getInfinitive() which returns a string that contains the infinitive form of the verb.
public boolean addVerb(Verb verb){ if(verbHashMap.containsValue(verb.getInfinitive()){ return false; } else{ verbHashMap.put(verb.getInfinitive(), verb); return true; } }
The question is what is the most efficient way to create a method that returns a list of all the verbs in the Hash Map in alphabetical order? Should I have the method return an ArrayList which includes the keys of all the objects in the Hash Map? Or is there a much more efficient way to go about this?
-
gonephishing about 9 yearsHow can I get a List of keys and not a Set ? Because I need to access the individual keys after the Map is made.
-
Marcelo about 9 years@gonephishing You can use the set as a parameter for the constructor of an ArrayList for example..
-
Michael Sims over 5 yearsBrilliant! Works like a chamo
-
Martin Meeser over 4 yearsthis will raise a warning, no?