使用默认值初始化列表中的映射键

Kyo*_*ofa 2 java lambda hashmap java-stream

我需要从列表中初始化映射的键,并为每个条目提供默认值。目前我使用 for 循环:

Map<String, String > myMap = new HashMap<>();
List<String> keys = Arrays.asList("a", "b", "c", "d");
for (String key : keys){
    myMap.put(key, "default");
}
Run Code Online (Sandbox Code Playgroud)

有没有更干净的方法来做到这一点?也许是 Stream 或者 lambda ?

Era*_*ran 6

是的,您可以创建Stream其中一个List元素并将它们收集到Map

Map<String,String> map = keys.stream ()
                             .collect (Collectors.toMap (Function.identity (), 
                                                         k -> "default"));
Run Code Online (Sandbox Code Playgroud)