Ответ
Да, можно, но не напрямую по самому Map. Интерфейс Map не реализует Iterable, поэтому цикл for (Item item : map) вызовет ошибку компиляции.
Правильные способы:
Используйте один из трех представлений (views) карты, которые возвращают коллекции (Set или Collection), поддерживающие Iterable.
-
Перебор пар «ключ-значение» (наиболее частый случай):
Map<String, Integer> scores = Map.of("Alice", 95, "Bob", 87); for (Map.Entry<String, Integer> entry : scores.entrySet()) { System.out.println(entry.getKey() + " -> " + entry.getValue()); } -
Перебор только ключей:
for (String key : scores.keySet()) { System.out.println("Key: " + key); } -
Перебор только значений:
for (Integer value : scores.values()) { System.out.println("Value: " + value); }
С Java 8+ рекомендуется использовать forEach с лямбда-выражением:
scores.forEach((key, value) -> System.out.println(key + ": " + value));