Вместо vector<Student>::iterator
используйте vector<Student>::const_iterator
.
List<Value> list = new ArrayList<Value>(map.values());
при условии:
Map<Key,Value> map;
Думаю, вы хотите преобразовать значения, содержащиеся в Map
, в список
? Проще всего вызвать метод values ()
интерфейса Map
. Это вернет Collection
объектов значений, содержащихся в Map
.
Обратите внимание, что эта Collection
поддерживается объектом Map
и здесь будут отражены любые изменения в объекте Map
. Поэтому, если вы хотите, чтобы отдельная копия не была привязана к вашему объекту Map
, просто создайте новый объект List
, например ArrayList
, передав значение Collection
], как показано ниже.
ArrayList<String> list = new ArrayList<String>(map.values());
список чего?
Предполагая, что карта
является вашим экземпляром Map
map.values ()
вернет ] Коллекция
, содержащая все значения карты. map.keySet ()
вернет Set
, содержащий все ключи карты. Проблема в том, что 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