Давайте обсудим еще некоторые различия между 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
- Основное различие между Iterator и ListIterator заключается в том, что, являясь курсором, Iterator может перемещаться по элементам в коллекции только в прямом направлении. С другой стороны, ListIterator может перемещаться как в прямом, так и в обратном направлении.
- Используя итератор, вы не можете добавить какой-либо элемент в коллекцию. Но с помощью ListIterator вы можете добавлять элементы в коллекцию.
- Используя Iterator, вы не можете удалить элемент из коллекции, где, как вы можете удалить элемент из коллекции, используя ListIterator.
- Используя Iterator, вы можете просматривать все коллекции, такие как Map, List, Set. Но с помощью ListIteror вы можете проходить только объекты, реализованные в List.
- Вы можете получить индекс элемента, используя Iterator. Но так как List является последовательным и основан на индексах, вы можете получить индекс элемента, используя ListIterator.
Заключение:
Вы можете использовать ListIterator, когда вам нужно особенно пройти объект List в прямом и обратном направлении. В противном случае вы можете использовать Iterator, поскольку он поддерживает все объекты коллекции типов.