Sobes.tech
Middle

Miért nem tervezték meg az Iterator felülethez tartozó konkrét megvalósításokat?

sobes.tech MI

Válasz az MI-től

Az Iterator interfész meghatározza a szerződést a kollekciók bejárására. A konkrét megvalósítások a kollekciók belső szerkezetétől függnek (például, ArrayList, LinkedList, HashSet). Egy univerzális megvalósítás nyújtása hatékonytalan vagy lehetetlen lenne, mivel figyelembe kell vennie minden típus sajátosságait.

Például:

  • ArrayList.iterator() az elemeket index szerint járja be.
  • LinkedList.iterator() az elemeket a csomópontok közötti mutatók követésével járja be.
  • HashSet.iterator() az elemeket a belső kosár tömb és a láncolt listák/piros-fekete fák használatával járja be.

Csak a kollekció maga tudja, hogyan biztosítja a leghatékonyabban az iteratort a saját adatszerkezetéhez.