Невозможно перевести 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>,

Другие вопросы по тегам