Ответ 1
Используйте метод keySet()
, чтобы вернуть набор со всеми ключами Map
.
Если вы хотите сохранить свою карту, вы можете использовать TreeMap
.
В настоящее время я пытаюсь создать программу, которая сопрягает глаголы на испанском языке. Я создал Hash-таблицу, содержащую ключ и экземпляр объекта Verb. Ключ - это строка, которая имеет инфинитивную форму глагола (например, "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-карте? Или есть более эффективный способ сделать это?
Используйте метод keySet()
, чтобы вернуть набор со всеми ключами Map
.
Если вы хотите сохранить свою карту, вы можете использовать TreeMap
.
Используя map.keySet()
, вы можете получить набор ключей. Затем преобразуйте этот набор в List
с помощью:
List<String> l = new ArrayList<String>(map.keySet());
И затем используйте метод l.get(int)
для доступа к ключам.
PS: - source- Самый сжатый способ преобразования Set <String> в список <String>
map.keySet()
вернет вам все ключи. Если вы хотите, чтобы ключи были отсортированы, вы можете рассмотреть TreeMap
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);
}
Вы можете получить ключ по методу keyat, и вам нужно будет передать индекс, тогда он вернет ключ по этому конкретному индексу. этот цикл получит все ключи