0

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

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

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

4

3 回答 3

3

改变

Map m = new LinkedHashMap();

Map <String,String>m = new LinkedHashMap<String,String>();

所以它知道它是一个指向字符串的字符串映射。

于 2013-01-09T18:07:48.753 回答
1

“无法将对象转换为字符串,请告知”<-这是正常的,因为您的Map声明不允许这样做。

你应该声明:

Map<String, String> m = new LinkedHashMap<String, String>();
于 2013-01-09T18:07:55.910 回答
0

您尚未将 Map 定义为字符串 Map。因此,您正在迭代的键集是一组对象。尝试将您的 Map 声明更改为:

Map<String, String> m = new LinkedHashMap<String, String>();
于 2013-01-09T18:09:19.493 回答