ハッシュマップからキーのリストを返すには?

現在、スペイン語の動詞を活用させるプログラムを作ろうとしています。 ハッシュテーブルを作り、その中にキーとオブジェクトVerbのインスタンスを入れています。 キーは、動詞の不定詞の形を持つ文字列です(例:"hablar")。 これが今のところのハッシュマップのコードです。

public class VerbHashMap {

    HashMap<String, Verb> verbHashMap;

    public VerbHashMap(){
        verbHashMap = new 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をメソッドが返すようにすべきでしょうか? それとも、もっと効率的な方法があるのでしょうか?

ソリューション

KeySet()メソッドを使って、Map`のすべてのキーを含むセットを返します。

もしマップを順番に並べたいのであれば、TreeMapを使うことができます。

解説 (2)

map.keySet()を使えば、キーのセットを得ることができます。そして、このセットをList` に変換します。

List l = new ArrayList(map.keySet());

そして、l.get(int)メソッドを使ってキーにアクセスします。

PS:-ソース- https://stackoverflow.com/questions/2319538/most-concise-way-to-convert-a-setstring-to-a-liststring

解説 (1)
map.keySet()

とすると、すべてのキーが返されます。キーをソートしたい場合には、TreeMap

解説 (0)