Как вернуть список ключей из Hash Map? - PullRequest
51 голосов
/ 06 июля 2011

В настоящее время я пытаюсь создать программу, которая соединяет глаголы в испанский.Я создал хеш-таблицу, которая содержит ключ и экземпляр объекта Verb.Ключ - это строка, имеющая инфинитивную форму глагола (например, «хаблар»).Вот код, который у меня есть для хэш-карты:

public class VerbHashMap {

    HashMap<String, Verb> verbHashMap;

    public VerbHashMap(){
        verbHashMap = new HashMap();
    }   
}

Каждый ключ глагола в HashMap основан на бесконечной форме глагола.Например, строка «хаблар» является ключом для испанского глагола.В классе Verb есть метод getInfinitive (), который возвращает строку, содержащую инфинитивную форму глагола.

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

Вопрос в том, какой самый эффективный способ создать метод, который возвращает списоквсе глаголы в хэш-карте в алфавитном порядке?Должен ли я иметь метод, возвращающий ArrayList, который включает ключи всех объектов в Hash Map?Или есть более эффективный способ сделать это?

Ответы [ 3 ]

88 голосов
/ 06 июля 2011

Используйте метод keySet(), чтобы вернуть набор со всеми ключами Map.

Если вы хотите, чтобы ваша карта была упорядочена, вы можете использовать TreeMap.

60 голосов
/ 12 мая 2016

Используя map.keySet(), вы можете получить набор ключей.Затем преобразуйте этот набор в List:Установить в список

7 голосов
/ 06 июля 2011
map.keySet()

вернет вам все ключи. Если вы хотите, чтобы ключи были отсортированы, вы можете рассмотреть TreeMap

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...