Sobes.tech
Middle

Zašto nisu predviđene konkretne implementacije za interfejs Iterator?

sobes.tech АИ

Одговор од АИ

Interfejs Iterator definiše ugovor za obilazak kolekcija. Konkretne implementacije zavise od unutrašnje strukture kolekcija (npr., ArrayList, LinkedList, HashSet). Pružanje univerzalne implementacije bilo bi neefikasno ili nemoguće, jer mora uzeti u obzir osobine svake vrste kolekcije.

Na primer:

  • ArrayList.iterator() prolazi kroz elemente po indeksu.
  • LinkedList.iterator() prolazi kroz elemente prateći pokazivače između čvorova.
  • HashSet.iterator() prolazi kroz elemente koristeći unutrašnju matricu korpi i povezane liste/crveno-crne stabla.

Samo kolekcija sama zna kako najefikasnije da obezbedi iterator za svoju strukturu podataka.