关于Map中的编译时错误

时间:2013-01-09 18:06:04

标签: java list map linkedhashmap

请不要认为这个问题是重复的,虽然我之前有一个类似的问题,但这次是不同的..

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);
            }
        }

但它显示编译器错误无法将对象转换为字符串请建议。

3 个答案:

答案 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>();
相关问题