Встречается на 2% собеседований по Java

Почему Map не реализует интерфейс Iterable

Map не реализует Iterable, потому что его нельзя итерировать напрямую - у него две отдельные коллекции (ключи и значения) и пары ключ-значение. Для итерации используются:

  1. keySet() - для ключей
  2. values() - для значений
  3. entrySet() - для пар

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);

// Итерация по парам
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

Если бы Map реализовывал Iterable, было бы неясно, что именно итерировать - ключи, значения или записи. Отдельные методы дают явный контроль над типом итерируемых данных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы