Размотримо још неке разлике између Итератор-а и ЛистИтератор-а уз помоћ табеле за успоредбу приказане испод.
Цомпарисон Цхарт
Основа за поређење | Итератор | ЛистИтератор |
---|---|---|
Басиц | Итератор може да пређе елементе у збирци само у правцу напред. | ЛистИтератор може да пређе елементе у збирци у правцу напред и назад. |
Додати | Итератор не може да дода елементе у колекцију. | ЛистИтерор може додати елементе у колекцију. |
Модификовати | Итератор не може модификовати елементе у колекцији. | ЛистИтератор може модификовати елементе у збирци користећи сет (). |
прећи | Итератор може да пређе мапу, листу и сет. | ЛистИтератор може да прелази само објекте листе. |
Индек | Итератор нема методу за добијање индекса елемента у збирци. | Користећи ЛистИтератор, можете добити индекс елемента у збирци. |
Дефиниција Итератора
Итератор је интерфејс у оквиру за прикупљање . Користи се за прелазак кроз елементе прикупљања. Итератор вам омогућава да понављате сваки елемент у збирци један по један, да добијете елементе из збирке или да уклоните елементе из колекције. Можете приметити да не можете модификовати ниједан елемент у колекцији користећи Итератор.
Итератор има методу итератор () која враћа итератор на почетак колекције. Када једном добијете итератор за почетак збирке, онда пређите преко елемената у колекцији успоставите петљу која позива хасНект () сваки пут када се петља итерира. ХасНект () ако враћа труе, то значи да је следећи елемент у колекцији, а ако се врати фалсе онда то значи да су сви елементи прешли. Затим унутар петље можете добити сваки елемент у колекцији користећи нект () . Метод нект () враћа следећи елемент колекције.
Недостатак:
Користећи Итератор можете прећи збирку само у правцу напред.
Користећи Итератор, не можете манипулисати или модификовати елементе у колекцији.
Дефиниција ЛистИтератор
ЛистИтератор је интерфејс у оквиру колекције и проширује интерфејс Итератор . Користећи ЛистИтератор, можете прећи елементе колекције у правцу напред и назад . Такође, можете додати, уклонити или изменити било који елемент у колекцији. Укратко, можемо рећи да уклања недостатке Итератора.
Методе ЛистИтератор-а су следеће:
хасНект () : Ако врати труе потврђује да има више елемената у збирци.
нект () : Враћа следеће елементе листе.
нектИндек () : Враћа индекс следећих елемената на листи.
хасПревиоус () : Враћа труе ако постоје елементи у обрнутом смјеру у збирци.
превиоус () : Враћа претходни елемент у збирци.
превиоусИндек () : Враћа индекс претходног елемента у збирци.
ремове () : Избришите елемент из колекције.
сет () : Модификује елемент у збирци.
адд () : Додаје нови елемент у колекцију.
Кључне разлике између Итератора и ЛистИтератора
- Основна разлика између Итератор-а и ЛистИтератор-а је да су оба курсора, Итератор може да пређе елементе у збирци само у правцу напред. С друге стране, ЛистИтератор може да пређе у правцу напред и назад.
- Користећи итератор не можете додати ниједан елемент у колекцију. Али, помоћу ЛистИтератор-а можете додати елементе у колекцију.
- Користећи Итератор, не можете уклонити елемент у колекцији где, као што можете уклонити елемент из колекције користећи ЛистИтератор.
- Користећи Итератор можете прећи све збирке као што су Мап, Лист, Сет. Али, помоћу ЛистИтерор-а можете проћи само кроз имплементиране објекте.
- Можете преузети индекс неког елемента користећи Итератор. Али пошто је листа секвенцијална и заснована на индексу, можете преузети индекс неког елемента користећи ЛистИтератор.
Закључак:
ЛистИтератор можете користити када посебно желите да пређете кроз објекат Лист у правцу напред и назад. Исто тако, можете користити Итератор јер подржава све објекте типа колекције.