Sobes.tech
Junior — Middle

O que impede o uso da interface Iterable na estrutura de dados Map?

sobes.tech IA

Resposta da IA

A interface Iterable em Java destina-se a coleções que podem ser percorridas pelos seus elementos, fornecendo o método iterator(). No entanto, o Map não implementa Iterable diretamente, porque o Map é uma estrutura de dados que armazena pares chave-valor, e não apenas um conjunto de elementos.

Para percorrer um Map, normalmente usam-se os métodos keySet(), values() ou entrySet(), que retornam coleções que já implementam Iterable. Por exemplo:

Map<String, Integer> map = new HashMap<>();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " = " + entry.getValue());
}

Assim, o Map não implementa Iterable porque os seus elementos são pares chave-valor, e para facilitar a iteração, são fornecidas representações especiais desses pares.