How to return a list of keys from a Hash Map?
I'm currently trying to make a program that conjugates verbs into Spanish. I've created a Hash Table that contains a key and an instantiation of the object Verb. The key is a string that has the infinitive form of the verb (for example, "hablar"). This is the code that I have so far for the hash map:
public class VerbHashMap {
HashMap<String, Verb> verbHashMap;
public VerbHashMap(){
verbHashMap = new HashMap();
}
}
Each verb's key in the HashMap is based on the infinitive form of the verb. For example, the string "hablar" is the key for a Spanish verb. The class Verb has a method called getInfinitive() which returns a string that contains the infinitive form of the verb.
public boolean addVerb(Verb verb){
if(verbHashMap.containsValue(verb.getInfinitive()){
return false;
}
else{
verbHashMap.put(verb.getInfinitive(), verb);
return true;
}
}
The question is what is the most efficient way to create a method that returns a list o开发者_开发问答f all the verbs in the Hash Map in alphabetical order? Should I have the method return an ArrayList which includes the keys of all the objects in the Hash Map? Or is there a much more efficient way to go about this?
Use the keySet()
method to return a set with all the keys of a Map
.
If you want to keep your Map ordered you can use a TreeMap
.
Using map.keySet()
, you can get a set of keys. Then convert this set into List
by:
List<String> l = new ArrayList<String>(map.keySet());
And then use l.get(int)
method to access keys.
PS:- source- Most concise way to convert a Set<String> to a List<String>
List<String> yourList = new ArrayList<>(map.keySet());
This is will do just fine.
map.keySet()
will return you all the keys. If you want the keys to be sorted, you might consider a TreeMap
Since Java 8:
List<String> myList = map.keySet().stream().collect(Collectors.toList());
for(int i=0;i<ytFiles.size();i++){
int key = ytFiles.keyAt(i);
Log.e("key", String.valueOf(key));
String format = ytFiles.get(key).getFormat().toString();
String url = ytFiles.get(key).getUrl();
Log.e("url",url);
}
you can get key by method keyat and you have to pass the index then it will return key at that particular index. this loop will get all the key
精彩评论