Невозможно перевести foreach с C# на Java
Я пытаюсь перевести поисковую систему Булевой модели поиска и не могу перевести этот фрагмент кода на Java.
C#:
foreach(KeyValuePair<string ,List<string>> p in documentCollection){}
Джава:
for(Map<String, ArrayList<String>> p : documentCollection){}
К сожалению Java дает мне эту ошибку:
для каждого не применимо к типу приложения
Заранее спасибо!
1 ответ
Решение
Существует разница между тем, как интерфейс коллекции реализован в 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>
,