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).