2012-08-02 266 views
0

我想遍历HashMap列表并检索关键字和值(值1和值2)。有一个在这条线,上面写着 一个错误“类型不匹配:不能从元素类型对象转换为Map.Entry>”通过散列表列表迭代

for (Map.Entry<String, List<String>> entry : Map.entrySet()) 

难道我做错什么。请帮助我。这是整个代码。

public static void main(String[] args) { 
    Map<String, List<String>> conceptMap = new HashMap<String, List<String>>(); 
    Map<String, List<String>> PropertyMap = new HashMap<String, List<String>>(); 
    try{ 
     Scanner scanner = new Scanner(new FileReader("C:/")); 
     while (scanner.hasNextLine()){ 
      String nextLine = scanner.nextLine(); 
      String [] column = nextLine.split(":"); 
      if (column[0].equals ("Property")){ 
       if (column.length == 4) { 
        PropertyMap.put(column [1], Arrays.asList(column[2], column[3]));  
       } 
       else { 
        conceptMap.put (column [1], Arrays.asList (column[2], column[3])); 
       } 
      } 
      for (Map.Entry<String, List<String>> entry : Map.entrySet()) { 
       String key = entry.getKey(); 
       List<String> valueList = entry.getValue(); 
       System.out.println("Key: " + key); 
       System.out.print("Values: "); 
       for (String s : valueList) { 
        System.out.print(s + " "); 
       } 
      } 
     } 

     scanner.close(); 
    }  
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
+0

任何特定的语言? – 2012-08-02 17:29:52

+0

嗯是的,它是java。 – user1549861 2012-08-02 17:56:33

回答

2

变化Map.entrySet()PropertyMap.entrySet()conceptMap.entrySet()

1

Map.entrySet()方法由Map接口声明返回地图(返回Set)的集合视图。每个这些设置元素都是一个Map.Entry对象。 只有获得对映射条目的引用的方法来自该收集视图的迭代器。

如果你想返回你插入到地图中Set,你必须调用它,你把它放在集合:

PropertyMap.entrySet()conceptMap.entrySet()将返回集。

Map.entrySet()不调用您的任何实例化的Maps上的方法。在

0

Map.entrySet()返回map.change它集合以conceptMap.entrySet()或 propertyMap.entrySet