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.