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