如何从哈希表中返回键列表?

我目前正在尝试制作一个将动词连接​​成西class牙语的程序。 我创build了一个包含对象动词的键和实例的哈希表。 关键是具有动词不定式forms的string(例如“hablar”)。 这是我到目前为止的散列图的代码:

public class VerbHashMap { HashMap<String, Verb> verbHashMap; public VerbHashMap(){ verbHashMap = new HashMap(); } } 

在HashMap中的每个动词的关键是基于动词的不定式forms。 例如,string“hablar”是西class牙语动词的关键。 类动词有一个名为getInfinitive()的方法,它返回一个包含动词不定式forms的string。

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

问题是创build一个方法的最有效方法是按照字母顺序返回哈希表中所有动词的列表? 我应该有方法返回一个ArrayList,其中包含所有对象的哈希表中的键? 还是有更有效率的方法去做这件事?

使用keySet()方法返回一个包含Map所有键的集合。

如果你想保持你的地图sorting,你可以使用TreeMap

使用map.keySet() ,你可以得到一组键。 然后把这个集合转换成List

 List<String> l = new ArrayList<String>(map.keySet()); 

然后使用l.get(int)方法来访问键。

PS: – source- 将Set <String>转换为List <String>的最简洁的方法

 map.keySet() 

将返回你所有的钥匙。 如果你想把键sorting,你可以考虑一个TreeMap