Java 错误:无法将对象转换为字符串

Java 错误:无法将对象转换为字符串,java,hashmap,Java,Hashmap,有人对这个错误有帮助吗 error: incompatible types: Object cannot be converted to String 我将一个HashMap传递到一个函数中,目的是迭代它的键集并将它们存储到一个列表中进行排序,下面是我的代码 公共HashMap映射重新排序(HashMap映射){ /*清除准备输入的列表*/ clear(); /*在地图中迭代关键点*/ 对于(字符串键:map.keySet()){ double mapKey=keys.getValue();

有人对这个错误有帮助吗

error: incompatible types: Object cannot be converted to String
我将一个
HashMap
传递到一个函数中,目的是迭代它的键集并将它们存储到一个列表中进行排序,下面是我的代码

公共HashMap映射重新排序(HashMap映射){
/*清除准备输入的列表*/
clear();
/*在地图中迭代关键点*/
对于(字符串键:map.keySet()){
double mapKey=keys.getValue();
mapList.add(mapKey);
}
/*按升序值排序(内部频率等级)*/
Collections.sort(映射列表);
/*用有序列表填充HashMap*/
用于(双频:地图列表){
orderedMap.put(键、频率);
}
返回null;
}
带有
for(字符串键:map.keySet())
的行导致了错误

Map.keySet()
返回一个
Set
而不是
Set
,因为您使用的是rawTypes(
HashMap
)。因此,将行更改为:

for(Object keys : map.keySet())
或将方法的签名更改为以下内容:

public HashMap<String, ValueType> mapReorder(HashMap<String,ValueType> map){
公共HashMap映射重新排序(HashMap映射){
其中,
ValueType
是存储在地图中的值的类型

我将hashmap传递到函数中,目的是 遍历其键集并将其存储到列表中 订购

HashMap
没有顺序。因此,您最好使用
TreeMap
,它根据其键的自然顺序进行排序

return new TreeMap(map)

你在谷歌上搜索了错误消息吗?你会找到答案的。另请参见:这是错误的。你可以使用增强循环在
集合上迭代
@MuratK。对不起,发了个屁。请参见编辑这甚至不会远程回答问题。我提供了一种更好的方法@MuratK。有问题的代码是错误的。TS希望使用
H对地图进行排序ashMap
未排序。我正在等待下一次投票:)