Как правильно использовать hashSet?(переход с С ++ на Java) - PullRequest
0 голосов
/ 04 октября 2018

Я подхожу (после c ++) к java и, в частности, к разработке приложений для Android (Android studio), но у меня есть некоторые проблемы с использованием hashSet.Вот проблема: я не могу найти способ хранить ключи карты, полученные методом "keySet ()", в любом контейнере;Я пытался сохранить ключи в строковом векторе или списке, но произошла ошибка.Как я могу это исправить?

Это фрагмент кода:

 private void fillMap(Map<String, String> map, String[] strings){

    String str;

    map.put("Question1", "answer1");
    map.put("Question2", "answer2");
    map.put("Question3", "answer3");

    Set<String> keys = map.keySet();


}

Как видите, я создал карту, ключи которой - вопросы, а значения - ответы.Затем я создал набор, куда положить все ключи;Проблема в том, что я пытаюсь сохранить содержимое набора в упорядоченном контейнере, но все, что я пробовал, приводит к ошибке.

1 Ответ

0 голосов
/ 04 октября 2018

Предположим, у вас есть Map<String, Integer>, тогда его keySet() является Set<String> интерфейсом, полученным из еще более общего Collection<String>.Эту коллекцию вы можете добавить ко всему.

Set<String> keys = map.keySet();
List<String> list = new ArrayList<>(keys); // 1
list.sort();

Collections.addAll(list, keys); // or 2
Collections.sort(list); 

SortedSet<String> set = new TreeSet<>(keys);

И предупреждение для программиста на C ++: Vector - очень старый неэффективный класс;вместо этого используйте ArrayList, следовательно, переменные, параметры, типы результатов List.

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