错误:对象无法转换为String

时间:2017-12-14 12:02:34

标签: java hashmap

有没有人对此错误有任何帮助?

error: incompatible types: Object cannot be converted to String

我正在将一个HashMap传递给一个函数,目的是遍历其键集并将它们存储到一个列表中进行排序,这是我的代码

public HashMap mapReorder(HashMap map) {

    /* Clear the list ready for input */
    mapList.clear();

    /* Iterate through the keys in the map */

    for(String keys : map.keySet()) {
        double mapKey = keys.getValue();
        mapList.add(mapKey);
    }

    /* Sorting the order by ascending value (Internal Frequency Rank) */
    Collections.sort(mapList);

    /* Populating HashMap with ordered list */
    for(double frequencies : mapList) {
        orderedMap.put(keys , frequencies);
    }

    return null;
}

2 个答案:

答案 0 :(得分:2)

for(String keys : map.keySet())行导致错误。

Map.keySet()会返回Set<Object>而不是Set<String>,因为您使用的是rawTypes(HashMap)。因此,将该行更改为:

for(Object keys : map.keySet())

或将方法的签名更改为以下内容:

public HashMap<String, ValueType> mapReorder(HashMap<String,ValueType> map){

其中ValueTypemap

中存储的值的类型

答案 1 :(得分:-2)

  

我正在将一个散列图传递给一个函数   迭代其键集并将它们存储到列表中   排序

HashMap未订购。所以你最好使用TreeMap,它根据键的自然顺序排序。

return new TreeMap(map)