Рекомендуємо, 2020

Вибір Редакції

Різниця між ітератором і ListIterator в Java

Ітератор і ListIterator є двома серед трьох курсорів Java. Як Iterator, так і ListIterator визначаються за допомогою Framework Framework у пакеті J ava.Util . ListIterator є дочірнім інтерфейсом інтерфейсу Iterator. Основна відмінність між Iterator і ListIterator полягає в тому, що ітератор може переходити елементи в колекції тільки в прямому напрямку, тоді як ListIterator може проходити елементи в колекції як в прямому, так і в зворотному напрямку.

Давайте обговоримо деякі додаткові відмінності між Iterator і ListIterator за допомогою діаграми порівняння, показаної нижче.

Діаграма порівняння

Основа для порівнянняІтераторListIterator
ОсновнийІтератор може проходити елементи в колекції тільки в прямому напрямку.ListIterator може проходити елементи в колекції вперед і назад.
ДодатиIterator не може додавати елементи до колекції.ListIteror може додавати елементи до колекції.
ЗмінитиІтератор не може змінювати елементи в колекції.ListIterator може змінювати елементи колекції за допомогою набору ().
ТраверсІтератор може переходити карту, список і набір.ListIterator може перетинати лише об'єкти списку.
ІндексІтератор не має методу для отримання індексу елемента в колекції.Використовуючи ListIterator, ви можете отримати індекс елемента в колекції.

Визначення ітератора

Ітератор - це інтерфейс у рамці збору . Він використовується для проходження елементів колекції. Iterator дозволяє вам повторювати кожен елемент у колекції по одному, отримувати елементи з колекції або видаляти елементи з колекції. Ви можете помітити, що не можна змінювати будь-який елемент колекції за допомогою Iterator.

Iterator має метод iterator (), який повертає ітератор до початку колекції. Як тільки ви отримаєте ітератор до початку збірки, щоб пройти по елементах колекції, встановіть цикл, який викликає hasNext () кожен раз, коли цикл перебирається. Якщо hasNext () повертає true, це означає, що наступний елемент є в колекції, і якщо він повертає false, то це означає, що всі елементи пройдені. Тоді всередині циклу можна отримати кожен елемент у Колекції за допомогою next () . Метод next () повертає наступний елемент колекції.

Недолік:

За допомогою Iterator можна пересунути колекцію тільки в прямому напрямку.
Використовуючи Iterator, ви не можете керувати або змінювати елементи в колекції.

Визначення ListIterator

ListIterator - це інтерфейс у рамках Collection, який розширює інтерфейс Iterator . Використовуючи ListIterator, можна пересунути елементи колекції як в прямому, так і в зворотному напрямках. Також можна додавати, видаляти або змінювати будь-який елемент колекції. Коротше кажучи, можна сказати, що це усуває недоліки ітератора.

Методи 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. Але оскільки List є послідовним і на основі індексів, ви можете отримати індекс елемента за допомогою ListIterator.

Висновок:

Можна використовувати ListIterator, коли потрібно особливо пересувати об'єкт List у напрямку вперед і назад. Інакше можна використовувати Iterator, оскільки він підтримує всі об'єкти типу колекції.

Top