Actualmente estoy tratando de hacer un programa que conjugue los verbos al español. Creé una tabla Hash que contiene una clave y una instancia del objeto Verb. La clave es una cadena que tiene la forma infinitiva del verbo (por ejemplo, "hablar"). Este es el código que tengo hasta ahora para el mapa hash:¿Cómo devolver una lista de claves desde un mapa hash?
public class VerbHashMap {
HashMap<String, Verb> verbHashMap;
public VerbHashMap(){
verbHashMap = new HashMap();
}
}
clave de cada verbo en el HashMap se basa en el infinitivo del verbo. Por ejemplo, la cadena "hablar" es la clave para un verbo español. El verbo de clase tiene un método llamado getInfinitive() que devuelve una cadena que contiene la forma infinitiva del verbo.
public boolean addVerb(Verb verb){
if(verbHashMap.containsValue(verb.getInfinitive()){
return false;
}
else{
verbHashMap.put(verb.getInfinitive(), verb);
return true;
}
}
La pregunta es ¿cuál es la forma más eficiente de crear un método que devuelve una lista de todos los verbos en el mapa hash en orden alfabético? ¿Debo tener el método para devolver una ArrayList que incluya las claves de todos los objetos en el mapa hash? ¿O hay una forma mucho más eficiente de hacerlo?
La manera en que su 'addVerb()' método comprueba la existencia del valor en primer lugar, no debe el verbo ser la clave? – Marcelo