Рекомендуем, 2024

Выбор редакции

Разница между Iterator и ListIterator в Java

Iterator и ListIterator являются двумя из трех курсоров Java. Итератор и ListIterator определяются коллекцией Framework в пакете J ava.Util . ListIterator является дочерним интерфейсом интерфейса Iterator. Основное различие между Iterator и ListIterator заключается в том, что Iterator может проходить элементы в коллекции только в прямом направлении, тогда как ListIterator может проходить элементы в коллекции как в прямом, так и в обратном направлении.

Давайте обсудим еще некоторые различия между Iterator и ListIterator с помощью сравнительной таблицы, показанной ниже.

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

Основа для сравненияИтераторListIterator
основнойИтератор может проходить элементы в коллекции только в прямом направлении.ListIterator может перемещаться по элементам коллекции как в прямом, так и в обратном направлении.
добавлятьИтератор не может добавлять элементы в коллекцию.ListIteror может добавлять элементы в коллекцию.
изменятьИтератор не может изменять элементы в коллекции.ListIterator может изменять элементы в коллекции, используя set ().
ТраверсаИтератор может перемещаться по Map, List и Set.ListIterator может проходить только объекты List.
ИндексИтератор не имеет метода для получения индекса элемента в коллекции.Используя ListIterator, вы можете получить индекс элемента в коллекции.

Определение итератора

Iterator - это интерфейс в Collection Framework . Он используется для перемещения по элементам коллекции. Итератор позволяет вам перебирать каждый элемент в коллекции один за другим, получать элементы из коллекции или удалять элементы из коллекции. Вы можете заметить, что не можете изменить любой элемент в коллекции с помощью Iterator.

Итератор имеет метод iterator (), который возвращает итератор в начало коллекции. После того, как вы получите итератор в начале коллекции, затем для обхода элементов в коллекции создайте цикл, который вызывает hasNext () каждый раз, когда цикл повторяется. HasNext () if возвращает true, это означает, что следующий элемент есть в коллекции, и если он возвращает false, то это означает, что все элементы пройдены. Затем внутри цикла вы можете получить каждый элемент в Коллекции, используя next () . Метод next () возвращает следующий элемент коллекции.

Минус:

Используя Iterator, вы можете перемещаться по коллекции только в прямом направлении.
Используя Iterator, вы не можете манипулировать или изменять элементы в коллекции.

Определение ListIterator

ListIterator - это интерфейс в среде Collection, который расширяет интерфейс Iterator . Используя ListIterator, вы можете перемещаться по элементам коллекции как в прямом, так и в обратном направлении. Вы также можете добавить, удалить или изменить любой элемент в коллекции. Короче говоря, можно сказать, что это устраняет недостатки Iterator.

Методы ListIterator следующие:

hasNext () : Если возвращает true, подтверждает, что в коллекции больше элементов.
next () : возвращает следующие элементы списка.
nextIndex () : возвращает индекс следующих элементов в списке.
hasPrevious () : возвращает true, если в коллекции есть элементы в обратном направлении.
previous () : Возвращает предыдущий элемент в коллекции.
previousIndex () : Возвращает индекс предыдущего элемента в коллекции.
remove () : Удалить элемент из коллекции.
set () : изменяет элемент в коллекции.
add () : добавляет новый элемент в коллекцию.

Ключевые различия между Iterator и ListIterator

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

Заключение:

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

Top