ordenado - metodos de hashmap java
¿Cómo devolver una lista de claves de un Hash Map? (3)
Actualmente estoy tratando de hacer un programa que conjuga verbos al español. He creado una tabla de hash que contiene una clave y una instanciación 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:
public class VerbHashMap {
HashMap<String, Verb> verbHashMap;
public VerbHashMap(){
verbHashMap = new HashMap();
}
}
La clave de cada verbo en HashMap se basa en la forma infinitiva del verbo. Por ejemplo, la cadena "hablar" es la clave para un verbo español. La clase Verb 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 devuelva una lista de todos los verbos en el mapa hash en orden alfabético? ¿Debo hacer que el método devuelva una ArrayList que incluya las claves de todos los objetos en el mapa hash? ¿O hay una manera mucho más eficiente de hacer esto?
Usando map.keySet()
, puede obtener un conjunto de claves. Luego convierta este conjunto en List
por:
List<String> l = new ArrayList<String>(map.keySet());
Y luego use el l.get(int)
para acceder a las teclas.
PS: - fuente: la forma más concisa de convertir un conjunto <String> en una lista <String>
Utilice el método keySet()
para devolver un conjunto con todas las claves de un Map
.
Si desea mantener su mapa ordenado, puede utilizar un TreeMap
.
map.keySet()
Te devolveremos todas las llaves. Si desea que las claves se ordenen, puede considerar un TreeMap