Ответ 1
Большинство коллекций принимают Collection
как аргумент конструктора:
List<String> keyList = new ArrayList<String>(map.keySet());
List<String> valueList = new ArrayList<String>(map.values());
У меня есть LinkedHashMap < String, String > map
.
List < String > keyList;
List < String > valueList;
map.keySet();
map.values();
Есть ли простой способ заполнить keyList из map.keySet() и valueList из map.values (), или мне нужно итерации?
Большинство коллекций принимают Collection
как аргумент конструктора:
List<String> keyList = new ArrayList<String>(map.keySet());
List<String> valueList = new ArrayList<String>(map.values());
Конечно!
keyList.addAll(map.keySet());
Или вы можете передать его во время создания
List<String> keyList = new ArrayList<String>(map.KeySet());
http://download.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html
Другой подход с использованием Java 8 -
List<String> valueList = map.values().stream().collect(Collectors.toList());
List<String> keyList = map.keySet().stream().collect(Collectors.toList());
Примечание:
stream()
- возвращает последовательность Object
с учетом коллекции (здесь map
) в качестве источника
Collectors
- коллекторы используются для объединения результата обработки на элементах потока.