How to return a list of keys from a Hash Map?

224,050

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());
Share:
224,050
idungotnosn
Author by

idungotnosn

Updated on July 05, 2022

Comments

  • idungotnosn
    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
    gonephishing about 9 years
    How 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
    Marcelo about 9 years
    @gonephishing You can use the set as a parameter for the constructor of an ArrayList for example..
  • Michael Sims
    Michael Sims over 5 years
    Brilliant! Works like a chamo
  • Martin Meeser
    Martin Meeser over 4 years
    this will raise a warning, no?