【问题标题】:Regarding compile time error in Map关于 Map 中的编译时错误
【发布时间】:2013-01-09 18:06:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: java list map linkedhashmap


    【解决方案1】:

    改变

    Map m = new LinkedHashMap();
    

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

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

    【讨论】:

      【解决方案2】:

      “无法将对象转换为字符串,请告知”Map 声明不允许这样做。

      你应该声明:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-02-12
          • 2014-05-09
          • 2012-05-15
          • 1970-01-01
          • 2021-09-06
          • 1970-01-01
          • 1970-01-01
          • 2013-10-01
          相关资源
          最近更新 更多