Sobes.tech
Middle

Porovnejte rozhraní Iterator a ListIterator. Jaké jsou jejich hlavní rozdíly a v jakých případech je lepší je použít?

sobes.tech AI

Odpověď od AI

Iterator umožňuje procházet prvky kolekce jedním směrem (dopředu), kontrolovat, zda je k dispozici další prvek (hasNext()) a jej získat (next()). Může také odstranit aktuální prvek (remove()). Používá se pro obecné procházení jakýchkoli kolekcí implementujících rozhraní Iterable.

ListIterator dědí od Iterator a přidává funkce:

  • Pohyb oběma směry (hasPrevious(), previous()).
  • Získání indexu aktuálního (nextIndex()) a předchozího (previousIndex()) prvku.
  • Změnu prvku (set()).
  • Přidání prvku (add()).

ListIterator je použitelný pouze u kolekcí, které implementují rozhraní List, protože pracuje s indexy.

Použijte Iterator pro univerzální průchod a mazání prvků v jakýchkoli kolekcích Iterable. Použijte ListIterator pro specializované operace s List (obousměrný pohyb, změna, přidání podle indexu).