Apspriedīsim dažas atšķirības starp Iterator un ListIterator, izmantojot zemāk redzamo salīdzināšanas diagrammu.
Salīdzinājuma diagramma
Salīdzināšanas pamats | Iterators | ListIterator |
---|---|---|
Pamata | Iterators var pārvietot elementus kolekcijā tikai uz priekšu. | ListIterator var pārvietot elementus kolekcijā gan uz priekšu, gan virzienā atpakaļ. |
Pievienot | Iterators nevar pievienot elementus kolekcijai. | ListIteror var pievienot elementus kolekcijai. |
Modificēt | Iterators nevar modificēt kolekcijas elementus. | ListIterator var modificēt kolekcijas elementus, izmantojot komplektu (). |
Brauciet | Iterators var pārvietoties kartē, sarakstā un komplektā. | ListIterator var pārvietot tikai objektu sarakstu. |
Indekss | Iteratoram nav metodes, lai iegūtu kolekcijas elementa indeksu. | Izmantojot ListIterator, varat iegūt kolekcijas elementa indeksu. |
Iteratora definīcija
Iterators ir savākšanas sistēmas saskarne. To izmanto, lai pārvietotos pa savākšanas elementiem. Iterators ļauj katram kolekcijā iekļautajam elementam pa vienam, iegūt elementus no kolekcijas vai noņemt elementus no kolekcijas. Jūs varat pamanīt, ka jūs nevarat modificēt nevienu elementu kolekcijā, izmantojot Iterator.
Iteratoram ir metode iterators (), kas atgriež iteratoru līdz kolekcijas sākumam. Kad jūs saņemsiet iteratoru uz kolekcijas sākumu, tad, lai pārvietotu elementus kolekcijā, izveidojiet cilpu, kas katru reizi, kad cilpa atkārtojas, izsauc nākamo () . Ja ir atgriešanās patiesība, tas nozīmē, ka nākamais elements ir kolekcijā, un, ja tas atgriežas nepareizi, tas nozīmē, ka visi elementi ir šķērsoti. Tad cilpas iekšpusē jūs varat iegūt katru elementu kolekcijā, izmantojot nākamo () . Nākamā () metode atgriež nākamo kolekcijas elementu.
Šķērslis:
Izmantojot Iterator, jūs varat pārvietot kolekciju tikai uz priekšu.
Izmantojot Iterator, jūs nevarat manipulēt vai modificēt kolekcijas elementus.
ListIterator definīcija
ListIterator ir savākšanas sistēmas interfeiss, un tas paplašina Iterator interfeisu. Izmantojot ListIterator, varat pārvietot kolekcijas elementus gan uz priekšu, gan atpakaļ . Varat arī pievienot, noņemt vai modificēt jebkuru kolekcijas elementu. Īsāk sakot, mēs varam teikt, ka tas novērš Iteratora trūkumus.
ListIterator metodes ir šādas:
hasNext () : Ja atgriešanās ir patiesa, tas apstiprina, ka kolekcijā ir vairāk elementu.
nākamā () : atgriež nākamos saraksta elementus.
nextIndex () : Atgriež sarakstu ar nākamo elementu sarakstu.
hasPrevious () : atgriež taisnību, ja kolekcijā ir elementi pretējā virzienā.
previous () : Atgriež iepriekšējā kolekcijas elementu.
previousIndex () : atgriež iepriekšējā elementa indeksu kolekcijā.
noņemt () : Dzēst elementu no kolekcijas.
set () : pārveido kolekcijas elementu.
add () : Pievieno kolekcijai jaunu elementu.
Galvenās atšķirības starp Iterator un ListIterator
- Galvenā atšķirība starp Iterator un ListIterator ir tā, ka abi ir kursors, Iterator var pārvietot elementus kolekcijā tikai uz priekšu. No otras puses, ListIterator var pārvietoties gan uz priekšu, gan atpakaļ.
- Izmantojot iteratoru, kolekcijai nevar pievienot nevienu elementu. Bet, izmantojot ListIterator, varat savākt elementus kolekcijai.
- Izmantojot Iterator, jūs nevarat noņemt elementu kolekcijā, kur, kā Jūs varat noņemt elementu no kolekcijas, izmantojot ListIterator.
- Izmantojot Iterator, varat pārvietot visas kolekcijas, piemēram, karti, sarakstu, komplektu. Bet, pēc ListIteror jūs varat šķērsot sarakstu ar realizētajiem objektiem.
- Jūs varat iegūt elementa indeksu, izmantojot Iterator. Bet, tā kā saraksts ir secīgs un indekss, jūs varat iegūt elementa indeksu, izmantojot ListIterator.
Secinājums:
Varat izmantot ListIterator, kad jums ir īpaši jāpārvieto saraksts ar objektu gan uz priekšu, gan atpakaļ. Jūs varat izmantot Iterator, jo tas atbalsta visus tipa kolekcijas objektus.