Razgovarajmo o još nekim razlikama između Iterator i ListIterator uz pomoć usporedne tablice koja je prikazana u nastavku.
Tablica usporedbe
Osnova za usporedbu | iterator | ListIterator |
---|---|---|
Osnovni, temeljni | Iterator može prijeći elemente u zbirci samo u smjeru prema naprijed. | ListIterator može prijeći elemente u zbirci u smjeru naprijed i unatrag. |
Dodati | Iterator ne može dodati elemente u zbirku. | ListIteror može dodati elemente u zbirku. |
izmijeniti | Iterator ne može mijenjati elemente u zbirci. | ListIterator može modificirati elemente u zbirci koristeći set (). |
prijeći | Iterator može prelaziti kartu, popis i skup. | ListIterator može prelaziti samo popisne objekte. |
Indeks | Iterator nema metodu za dobivanje indeksa elementa u zbirci. | Koristeći ListIterator, možete dobiti indeks elementa u zbirci. |
Definicija Iteratora
Iterator je sučelje u okviru za prikupljanje . Koristi se za prolazak kroz elemente prikupljanja. Iterator vam omogućuje da ponavljate svaki element u zbirci jedan po jedan, dobivate elemente iz zbirke ili uklanjate elemente iz zbirke. Možete primijetiti da ne možete mijenjati nijedan element u zbirci pomoću Iteratora.
Iterator ima iterator metode () koji vraća iterator na početak zbirke. Nakon što dobijete iterator na početku zbirke, zatim za prolazak elemenata u zbirci uspostavite petlju koja poziva hasNext () svaki put kad se petlja iterira. HasNext () ako vraća true, to znači da je sljedeći element u zbirci, a ako vrati false onda znači da su svi elementi prešli. Zatim unutar petlje možete dobiti svaki element u zbirci pomoću sljedećeg () . Metoda next () vraća sljedeći element zbirke.
nedostatak:
Pomoću Iteratora možete preći zbirku samo u smjeru prema naprijed.
Koristeći Iterator, ne možete manipulirati ili mijenjati elemente u zbirci.
Definicija ListIterator
ListIterator je sučelje u okviru zbirke i proširuje Iterator sučelje. Koristeći ListIterator, možete prijeći elemente zbirke u smjeru naprijed i natrag . Također možete dodati, ukloniti ili izmijeniti bilo koji element u zbirci. Ukratko, možemo reći da uklanja nedostatke Iteratora.
Metode ListIterator su sljedeće:
hasNext () : Ako vrati true potvrđuje da ima više elemenata u zbirci.
next () : Vraća sljedeće elemente popisa.
nextIndex () : Vraća indeks sljedećih elemenata na popisu.
hasPrevious () : Vraća true ako postoje elementi u obrnutom smjeru u zbirci.
previous () : Vraća prethodni element u zbirci.
previousIndex () : Vraća indeks prethodnog elementa u zbirci.
remove () : Izbrišite element iz zbirke.
set () : Mijenja element u zbirci.
add () : Dodaje novi element u zbirku.
Ključne razlike između Iteratora i ListIteratora
- Osnovna razlika između Iterator-a i ListIterator-a je da su obje pokazivač, Iterator može prelaziti elemente u zbirci samo u smjeru prema naprijed. S druge strane, ListIterator može proći i naprijed i natrag.
- Pomoću iteratora ne možete dodati element u zbirku. No, pomoću ListIterator možete dodati elemente u zbirku.
- Koristeći Iterator, ne možete ukloniti element u zbirci gdje, kao što možete ukloniti element iz zbirke pomoću ListIterator.
- Koristeći Iterator možete preći sve zbirke poput Map, List, Set. No, pomoću ListIteror možete proći samo kroz implementirane objekte.
- Možete dohvatiti indeks elementa pomoću Iteratora. No, budući da je popis sekvencijalan i na bazi indeksa, možete preuzeti indeks elementa pomoću popisa ListIterator.
Zaključak:
Možete koristiti ListIterator kada morate posebno proći objekt List u smjeru naprijed i natrag. Iterator možete koristiti jer podržava sve objekte tipa zbirke.