Sobes.tech
Middle

Porovnajte rozhrania Iterator a ListIterator. Aké sú ich hlavné rozdiely a v ktorých prípadoch je lepšie použiť každé z nich?

sobes.tech AI

Odpoveď od AI

Iterator umožňuje prechádzanie prvkov kolekcie v jednom smere (dopredu), kontrolu, či existuje ďalší prvok (hasNext()) a jeho získanie (next()). Môže odstrániť aktuálny prvok (remove()). Používa sa na všeobecné prechádzanie akýchkoľvek kolekcií implementujúcich rozhranie Iterable.

ListIterator dedí od Iterator a pridáva funkcie:

  • Pohyb v oboch smeroch (hasPrevious(), previous()).
  • Získanie indexu aktuálneho (nextIndex()) a predchádzajúceho (previousIndex()) prvku.
  • Zmenu prvku (set()).
  • Pridanie prvku (add()).

ListIterator je použiteľný iba na kolekcie, ktoré implementujú rozhranie List, pretože pracuje s indexami.

Použite Iterator na univerzálne prechádzanie a mazanie prvkov v akýchkoľvek kolekciách Iterable. Použite ListIterator na špecializované operácie s List (dvojstranné pohyby, zmena, pridanie podľa indexu).