我有一个方法接收List<String> keys
并对其进行一些计算,最后它返回Map<String, String>
,该列表具有该List的键和是否计算出的值。如果无法计算值,则我希望该键的值为String
。
最简单的方法是在计算开始时创建包含所有具有默认值(在这种情况下为空字符串)的键的Map,然后替换计算值。
这样做的最佳方法是什么?我认为Collections API中没有适当的初始化程序。
答案 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
}