Как преобразовать карту в список в Java?

Вместо vector<Student>::iterator используйте vector<Student>::const_iterator.

627
задан Javaa 31 October 2011 в 17:12
поделиться

4 ответа

List<Value> list = new ArrayList<Value>(map.values());

при условии:

Map<Key,Value> map;
1253
ответ дан 22 November 2019 в 21:49
поделиться

Думаю, вы хотите преобразовать значения, содержащиеся в Map , в список ? Проще всего вызвать метод values ​​() интерфейса Map . Это вернет Collection объектов значений, содержащихся в Map .

Обратите внимание, что эта Collection поддерживается объектом Map и здесь будут отражены любые изменения в объекте Map . Поэтому, если вы хотите, чтобы отдельная копия не была привязана к вашему объекту Map , просто создайте новый объект List , например ArrayList , передав значение Collection ], как показано ниже.

ArrayList<String> list = new ArrayList<String>(map.values());
14
ответ дан 22 November 2019 в 21:49
поделиться

список чего?

Предполагая, что карта является вашим экземпляром Map

  • map.values ​​() вернет ] Коллекция , содержащая все значения карты.
  • map.keySet () вернет Set , содержащий все ключи карты.
23
ответ дан 22 November 2019 в 21:49
поделиться

Проблема в том, что Map имеет два значения (ключ и значение), тогда как список List имеет только одно значение (элемент).

Таким образом, лучшее, что можно сделать, - это получить Список ключей или значений. (Если мы не сделаем оболочку для хранения пары ключ / значение.)

Скажем, у нас есть Карта :

Map<String, String> m = new HashMap<String, String>();
m.put("Hello", "World");
m.put("Apple", "3.14");
m.put("Another", "Element");

Ключи в виде Списка могут быть получены с помощью создание нового ArrayList из Set , возвращенного методом Map.keySet :

List<String> list = new ArrayList<String>(m.keySet());

Хотя значения в виде List могут быть получено создание нового ArrayList из Collection , возвращенного методом Map.values ​​ :

List<String> list = new ArrayList<String>(m.values());

Результат получения List из keys:

Apple
Another
Hello

Результат получения списка List значений:

3.14
Element
World
133
ответ дан 22 November 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: