2015-08-20 34 views
-4

我試圖翻譯Boolean Retrieval Model search engine,並且無法將這段代碼翻譯成Java。無法將C#中的foreach轉換爲Java

C#:

foreach(KeyValuePair<string ,List<string>> p in documentCollection){} 

的Java:

for(Map<String, ArrayList<String>> p : documentCollection){} 

不幸的是Java的給我這個錯誤:

提前感謝!

+6

documentCollection的定義是什麼? – JFPicard

+0

@rapharel documentCollection應該是java.lang.Iterable的實例或數組 –

+0

@JFPicard public static Map > documentCollection = new HashMap <>(); – Rapharel

回答

6

C#的IDictionary<K,V>和Java的Map<K,V>實現集合接口的方式有所不同。在C#中,集合本身可以枚舉鍵值對;在Java中,你必須調用一個方法來獲取鍵值設置,這就是所謂entrySet()

for (Map.Entry<String,ArrayList<String>> p : documentCollection.entrySet()) { 
    ... 
} 

注意,在你的Java迭代Map.Entry<K,V>對象而不是C#的KeyValuePair<K,V>