Препоръчано, 2024

Избор На Редактора

Разлика между Iterator и ListIterator в Java

Iterator и ListIterator са двете сред трите курсора на Java. Както Iterator, така и ListIterator се дефинират от рамката за събиране в пакета J ava.Util . ListIterator е интерфейс на детето на интерфейса Iterator. Основната разлика между Iterator и ListIterator е, че Iterator може да премине елементите в колекцията само в посока напред, докато ListIterator може да премине елементите в колекция както в посока напред, така и назад .

Нека обсъдим още няколко разлики между Iterator и ListIterator с помощта на таблицата за сравнение, показана по-долу.

Сравнителна таблица

Основа за сравнениеИтераторътListIterator
ОсновенИтераторът може да премине елементите в колекция само в посока напред.ListIterator може да премине елементите в колекцията в посока напред и назад.
ДобавиIterator не може да добавя елементи към колекция.ListIteror може да добавя елементи към колекция.
ПромянаIterator не може да променя елементите в колекцията.ListIterator може да модифицира елементите в колекция, използвайки set ().
TraverseIterator може да премине карта, списък и набор.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

  1. Основната разлика между Iterator и ListIterator е, че и двата курсора, Iterator може да премине елементи в колекция само в посока напред. От друга страна, ListIterator може да премине в двете посоки напред и назад.
  2. С помощта на iterator не можете да добавите никакъв елемент към колекция. Но с помощта на ListIterator можете да добавяте елементи към колекция.
  3. С помощта на Iterator не можете да премахнете елемент в колекция, където, като Можете да премахнете елемент от колекция с помощта на ListIterator.
  4. С помощта на Iterator можете да преминете през всички колекции като Map, List, Set. Но от ListIteror можете да прелиствате само реализирани обекти.
  5. Можете да извлечете индекс на елемент с помощта на Iterator. Но тъй като Списъкът е последователен и базиран на индекс, можете да извлечете индекс на елемент в ListIterator.

Заключение:

Можете да използвате ListIterator, когато трябва да пресичате обект List в посока напред и назад. В противен случай можете да използвате Iterator, тъй като поддържа всички обекти от тип колекция.

Top