有没有人对此错误有任何帮助?
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;
}
答案 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){
其中ValueType
是map
答案 1 :(得分:-2)
我正在将一个散列图传递给一个函数 迭代其键集并将它们存储到列表中 排序
HashMap
未订购。所以你最好使用TreeMap
,它根据键的自然顺序排序。
return new TreeMap(map)