使用HashMap <string,double =“”>转换HashMap <string,integer =“”>

时间:2015-10-15 15:50:08

标签: java

为什么演员在这种情况下不能直接使用

HashMap<String, Double> mapDouble = (HashMap<String, Integer>) mapInteger;

有比循环更简单的方法吗?

HashMap<String, Double> mapDouble;
for (Map.Entry<String,Integer> entry : mapInteger.entrySet()) {
    mapDouble.put(entry.getKey(), new Double(entry.getValue()) );
}

3 个答案:

答案 0 :(得分:2)

抱歉,你需要一个循环!您必须将所有mapInteger逐个转换为值。

答案 1 :(得分:0)

您无法转换哈希地图。

entrySet()会提供更好的效果方法。

答案 2 :(得分:0)

使用Map<String, Number>会更容易。

Map<String, Number> map = new HashMap<>();
for (int i = 0; i < 100; i++) {
    map.put(Integer.toString(i), i);
}
map.forEach((k, v) -> System.out.println(k + " -> " + v.doubleValue()));