如何从哈希映射返回键列表?


问题内容

我目前正在尝试制作一个将动词与西班牙语共轭的程序。我创建了一个哈希表,其中包含一个键和对象Ve​​rb的实例化。键是具有动词不定式形式的字符串(例如“
hablar”)。这是到目前为止我对哈希映射的代码:

public class VerbHashMap {

    HashMap<String, Verb> verbHashMap;

    public VerbHashMap(){
        verbHashMap = new HashMap();
    }   
}

HashMap中每个动词的键都基于动词的不定式形式。例如,字符串“
hablar”是西班牙语动词的键。Verb类具有一个名为getInfinitive()的方法,该方法返回一个字符串,其中包含动词的不定式形式。

public boolean addVerb(Verb verb){
    if(verbHashMap.containsValue(verb.getInfinitive()){
        return false;
    }
    else{
        verbHashMap.put(verb.getInfinitive(), verb);
        return true;
    }
}

问题是创建按字母顺序返回哈希图中所有动词列表的方法的最有效方法是什么?我是否应该让该方法返回一个ArrayList,其中包含Hash
Map中所有对象的键?还是有一种更有效的方法来解决这个问题?


问题答案:

使用此keySet()方法可返回带有的所有键的集合Map

如果您想保持地图秩序,可以使用TreeMap