I'm derzeit versuchen, ein Programm, das Verben in Spanisch konjugiert zu machen. Ich habe eine Hash-Tabelle erstellt, die einen Schlüssel und eine Instanziierung des Objekts Verb enthält. Der Schlüssel ist eine Zeichenkette, die die Infinitivform des Verbs enthält (zum Beispiel "hablar"). Dies ist der Code, den ich bis jetzt für die Hash-Map habe:
public class VerbHashMap {
HashMap<String, Verb> verbHashMap;
public VerbHashMap(){
verbHashMap = new HashMap();
}
}
Der Schlüssel jedes Verbs in der HashMap basiert auf der Infinitivform des Verbs. Zum Beispiel ist die Zeichenkette "hablar" der Schlüssel für ein spanisches Verb. Die Klasse Verb verfügt über eine Methode namens getInfinitive(), die einen String zurückgibt, der die Infinitivform des Verbs enthält.
public boolean addVerb(Verb verb){
if(verbHashMap.containsValue(verb.getInfinitive()){
return false;
}
else{
verbHashMap.put(verb.getInfinitive(), verb);
return true;
}
}
Die Frage ist, wie man am effizientesten eine Methode erstellen kann, die eine Liste aller Verben in der Hash Map in alphabetischer Reihenfolge zurückgibt? Soll die Methode eine ArrayList zurückgeben, die die Schlüssel aller Objekte in der Hash Map enthält? Oder gibt es einen viel effizienteren Weg, dies zu tun?
Mit "map.keySet()" können Sie eine Reihe von Schlüsseln erhalten. Dann konvertieren Sie diese Menge in List
durch:
List<String> l = new ArrayList<String>(map.keySet());
Dann kann man mit der Methode l.get(int)
auf die Schlüssel zugreifen.
PS:- Quelle- https://stackoverflow.com/questions/2319538/most-concise-way-to-convert-a-setstring-to-a-liststring