Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

java

hashmap

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?

like image 638
idungotnosn Avatar asked Jul 05 '11 22:07

idungotnosn


1 Answers

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.

like image 103
Marcelo Avatar answered Sep 21 '22 20:09

Marcelo