Middle
Uporedite interfejse Iterator i ListIterator. Koje su njihove glavne razlike i u kojim slučajevima je bolje koristiti svaki od njih?
sobes.tech АИ
Одговор од АИ
Iterator omogućava prolazak kroz elemente kolekcije u jednom pravcu (napred), proveru da li postoji sledeći element (hasNext()) i njegovo dobijanje (next()). Može da ukloni trenutni element (remove()). Koristi se za opšti prolazak bilo koje kolekcije koja implementira interfejs Iterable.
ListIterator nasleđuje od Iterator i dodaje funkcionalnosti:
- Kretanje u oba pravca (
hasPrevious(),previous()). - Dobijanje indeksa trenutnog (
nextIndex()) i prethodnog (previousIndex()) elementa. - Izmena elementa (
set()). - Dodavanje elementa (
add()).
ListIterator je primenjiv samo na kolekcije koje implementiraju interfejs List, jer radi sa indeksima.
Koristite Iterator za univerzalno prolaz i brisanje elemenata u bilo kojoj Iterable kolekciji. Koristite ListIterator za specijalizovane operacije sa List (dvostrano kretanje, izmena, dodavanje po indeksu).