Нека обсъдим още няколко разлики между Iterator и ListIterator с помощта на таблицата за сравнение, показана по-долу.
Сравнителна таблица
Основа за сравнение | Итераторът | ListIterator |
---|---|---|
Основен | Итераторът може да премине елементите в колекция само в посока напред. | ListIterator може да премине елементите в колекцията в посока напред и назад. |
Добави | Iterator не може да добавя елементи към колекция. | ListIteror може да добавя елементи към колекция. |
Промяна | Iterator не може да променя елементите в колекцията. | ListIterator може да модифицира елементите в колекция, използвайки set (). |
Traverse | Iterator може да премине карта, списък и набор. | ListIterator може да пресича само обекти от списъка. |
индекс | Iterator няма метод за получаване на индекс на елемента в колекция. | Използвайки ListIterator, можете да получите индекс на елемента в колекция. |
Определение на итератора
Iterator е интерфейс в рамката за събиране . Използва се за преминаване през елементите за събиране. Iterator ви позволява да повторите всеки елемент в колекцията един по един, да получите елементи от колекцията или да премахнете елементи от колекцията. Можете да забележите, че не можете да модифицирате нито един елемент в колекция с помощта на Iterator.
Итераторът има метод iterator (), който връща итератора към началото на колекцията. След като получите итератор за началото на колекция, след това за да преминете през елементите в колекцията, въведете линия, която извиква hasNext () всеки път, когато цикълът се превърта. HasNext () ако връща true, това означава, че следващият елемент е в колекцията и ако се върне false, това означава, че всички елементи са преминали. След това вътре в цикъла можете да получите всеки елемент в колекция, като използвате следващия () . Методът next () връща следващия елемент от колекцията.
Недостатък:
С помощта на Iterator можете да преминете колекция само в посока напред.
С помощта на Iterator не можете да манипулирате или модифицирате елементите в колекцията.
Определение на ListIterator
ListIterator е интерфейс в рамките на колекцията и разширява интерфейса на Iterator . Използвайки ListIterator, можете да преминете през елементите на колекцията в двете посоки напред и назад . Можете също да добавяте, премахвате или променяте всеки елемент в колекцията. Накратко, можем да кажем, че премахва недостатъците на Iterator.
Методите на ListIterator са следните:
hasNext () : Ако връща true потвърждава, че има повече елементи в колекцията.
next () : Връща следващите елементи от списъка.
nextIndex () : Връща индекса на следващите елементи в списъка.
hasPrevious () : Връща true, ако има елементи в обратна посока в колекцията.
previous () : Връща предишния елемент в колекция.
previousIndex () : Връща индекса на предишния елемент в колекция.
remove () : Изтрийте елемента от колекция.
set () : Променя елемента в колекция.
add () : Добавя новия елемент в колекция.
Ключови разлики между итератора и ListIterator
- Основната разлика между Iterator и ListIterator е, че и двата курсора, Iterator може да премине елементи в колекция само в посока напред. От друга страна, ListIterator може да премине в двете посоки напред и назад.
- С помощта на iterator не можете да добавите никакъв елемент към колекция. Но с помощта на ListIterator можете да добавяте елементи към колекция.
- С помощта на Iterator не можете да премахнете елемент в колекция, където, като Можете да премахнете елемент от колекция с помощта на ListIterator.
- С помощта на Iterator можете да преминете през всички колекции като Map, List, Set. Но от ListIteror можете да прелиствате само реализирани обекти.
- Можете да извлечете индекс на елемент с помощта на Iterator. Но тъй като Списъкът е последователен и базиран на индекс, можете да извлечете индекс на елемент в ListIterator.
Заключение:
Можете да използвате ListIterator, когато трябва да пресичате обект List в посока напред и назад. В противен случай можете да използвате Iterator, тъй като поддържа всички обекти от тип колекция.