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.