请不要认为这个问题是重复的,虽然我之前有一个类似的问题,但这次是不同的..
Map m = new LinkedHashMap();
m.put ("123", "23");
m.put ("323", "23");
m.put ("153", "23");
m.put ("623", "23");
m.put ("125", "23");
m.put ("122", "24");
m.put ("167", "24");
m.put ("173", "24");
m.put ("113", "25");
现在我的查询是,我需要找出有多少脚本与患者Id 23相关联,如上所示5总共有不同的脚本,
我这样做了..
List<String> keys = new ArrayList<String>();
for(String str: m.keySet())
{
if(m.get(str).equals("23")) {
keys.add(str);
}
}
但它显示编译器错误无法将对象转换为字符串请建议。
答案 0 :(得分:3)
更改
Map m = new LinkedHashMap();
到
Map <String,String>m = new LinkedHashMap<String,String>();
所以它知道它是一个指向字符串的字符串映射。
答案 1 :(得分:1)
“无法将对象转换为字符串请告知”&lt; - 这是正常的,因为您的Map
声明不允许这样做。
您应该声明:
Map<String, String> m = new LinkedHashMap<String, String>();
答案 2 :(得分:0)
您尚未将地图定义为字符串地图。因此,您要迭代的键集是一组对象。 尝试将地图声明更改为:
Map<String, String> m = new LinkedHashMap<String, String>();