Sobes.tech
Middle

Proč nejsou pro rozhraní Iterator určeny konkrétní implementace?

sobes.tech AI

Odpověď od AI

Rozhraní Iterator definuje smlouvu pro průchod kolekcemi. Konkrétní implementace závisí na vnitřní struktuře kolekcí (například ArrayList, LinkedList, HashSet). Poskytování univerzální implementace by bylo neefektivní nebo nemožné, protože musí brát v úvahu vlastnosti každého typu kolekce.

Například:

  • ArrayList.iterator() prochází prvky podle indexu.
  • LinkedList.iterator() prochází prvky následujícími ukazateli mezi uzly.
  • HashSet.iterator() prochází prvky pomocí vnitřního pole košů a propojených seznamů/červených-černých stromů.

Pouze samotná kolekce ví, jak nejefektivněji poskytnout iterátor pro svou datovou strukturu.