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
未排序。我正在等待下一次投票:)