使用提供的键集和默认值创建地图

时间:2018-10-10 13:29:35

标签: java

我有一个方法接收List<String> keys并对其进行一些计算,最后它返回Map<String, String>,该列表具有该List的键和是否计算出的值。如果无法计算值,则我希望该键的值为String

最简单的方法是在计算开始时创建包含所有具有默认值(在这种情况下为空字符串)的键的Map,然后替换计算值。

这样做的最佳方法是什么?我认为Collections API中没有适当的初始化程序。

3 个答案:

答案 0 :(得分:0)

Map<String,String> map = new HashMap<>();
String emptyString = "";
for(String key:keys){
    Object yourcomputation = emptyString;
    //asign your computation to new value base on key
    map.put(key,yourcomputation);
}

答案 1 :(得分:0)

最简单的答案是在几秒钟前出现的:

final Map<String, String> labelsToReturn = keys.stream().collect(toMap(x -> x, x -> ""));

完美地解决了问题。

只需将stream和toMap与键/值映射一起使用即可初始化地图。

答案 2 :(得分:0)

我建议您使用Stream API Collectors.toMap()方法。有一种方法:

private static void build(List<String> keys) {
    Map<String, String> defaultValues = keys.stream().collect(
            Collectors.toMap(key -> key, key -> "default value")
    );

    // further computations
}