尝试将hashmap getValue()解析为int时出错

时间:2018-04-27 15:15:32

标签: java hashmap raw-types

我有一个单词的散列图和频率 我想将频率用作整数

     for (Map.Entry me : hm.entrySet()) {
        int freq = me.getValue();
        //do something with int
     }

这会导致不同的错误: Cannot convert from Object to intThe method parseInt(boolean) in the type PApplet is not applicable for the arguments (object)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

你应该avoid using raw type,如果你使用的是jdk7 +,请尝试以这种方式创建地图:

Map<String, Integer> map = new HashMap<>();

for (Map.Entry<String, Integer> me : hm.entrySet()) {
     int freq = me.getValue();
     //do something with int
}

答案 1 :(得分:1)

将此视为反应答,但这确实有其用途。 user6690200的答案是正确的恕我直言。

但是如果你无法控制Map的创建,并且给出了原始地图的实例,你会怎么做?

在这种情况下,最快的解决方案是使用适当的异常try-catch网络进行投射和围绕有问题的投射:

for (Map.Entry me : hm.entrySet()) {
    try {
       int freq = (Integer)me.getValue();
       //do something with int
    } catch (ClassCastException e) {
       // handle exception resposibly!
    }
 }