我目前正在尝试制作一个将动词变为西班牙语的程序。 我创建了一个哈希表,其中包含一个键和动词对象的实例。 键是一个包含动词不定式形式的字符串(例如,"hablar")。 这是我目前为哈希表编写的代码:
public class VerbHashMap {
HashMap<String, Verb> verbHashMap;
public VerbHashMap(){
verbHashMap = new HashMap();
}
}
哈希表中每个动词的键都基于动词的不定式形式。 例如,"hablar"字符串是西班牙语动词的键。 动词类中有一个名为 getInfinitive() 的方法,该方法会返回一个包含动词不定式形式的字符串。
public boolean addVerb(Verb verb){
if(verbHashMap.containsValue(verb.getInfinitive()){
return false;
}
else{
verbHashMap.put(verb.getInfinitive(), verb);
return true;
}
}
问题是,创建一个按字母顺序返回哈希映射表中所有动词列表的方法,最有效的方法是什么? 我是否应该让该方法返回一个数组列表,其中包含哈希映射表中所有对象的键? 还是有更有效的方法?
使用 map.keySet()
可以获得一组键。然后通过以下方法将该集合转换为 List
:
List<String> l = new ArrayList<String>(map.keySet());
然后使用 l.get(int)
方法访问键值。
PS:- 源- https://stackoverflow.com/questions/2319538/most-concise-way-to-convert-a-setstring-to-a-liststring