#java #lambda #hashmap #java-stream
#Ява #лямбда #хэш-карта #java-поток
Вопрос:
Мне нужно инициализировать ключи карты из списка и указать значение по умолчанию для каждой записи. В настоящее время я использую цикл for :
Maplt;String, String gt; myMap = new HashMaplt;gt;(); Listlt;Stringgt; keys = Arrays.asList("a", "b", "c", "d"); for (String key : keys){ myMap.put(key, "default"); }
Есть ли более чистый способ сделать это ? Может быть, поток или лямбда ?
Ответ №1:
Да, вы можете создать один Stream
из этих List
элементов и собрать их в Map
:
Maplt;String,Stringgt; map = keys.stream () .collect (Collectors.toMap (Function.identity (), k -gt; "default"));