В этом руководстве мы узнаем об интерфейсе Java ListIterator на примере.
ListIterator
Интерфейс рамок коллекций Java обеспечивает функциональные возможности для элементов доступа списка.
Он двунаправленный. Это означает, что он позволяет нам перебирать элементы списка в обоих направлениях.
Расширяет Iterator
интерфейс.
List
Интерфейс предоставляет listIterator()
метод , который возвращает экземпляр ListIterator
интерфейса.
Методы ListIterator
ListIterator
Интерфейс предоставляет методы , которые могут быть использованы для выполнения различных операций по элементам списка.
hasNext()
- возвращает истину, если в списке есть элементnext()
- возвращает следующий элемент спискаnextIndex()
возвращает индекс элемента,next()
который вернет методprevious()
- возвращает предыдущий элемент спискаpreviousIndex()
- возвращает индекс элемента,previous()
который вернет методremove()
- удаляет элемент, возвращаемый либоnext()
илиprevious()
set()
- заменяет элемент , возвращенный либоnext()
илиprevious()
с указанным элементом
Пример 1: реализация ListIterator
В приведенном ниже примере, мы реализовали next()
, nextIndex()
и hasNext()
методы ListIterator
интерфейса в списке массива.
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); // Using the next() method int number1 = iterate.next(); System.out.println("Next Element: " + number1); // Using the nextIndex() int index1 = iterate.nextIndex(); System.out.println("Position of Next Element: " + index1); // Using the hasNext() method System.out.println("Is there any next element? " + iterate.hasNext()); ) )
Вывод
ArrayList: (1, 3, 2) Следующий элемент: 1 Позиция следующего элемента: 1 Есть ли следующий элемент? правда
Пример 2: Реализация ListIterator
В приведенном ниже примере, мы реализовали previous()
и previousIndex()
методы ListIterator
интерфейса в списке массива.
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); iterate.next(); iterate.next(); // Using the previous() method int number1 = iterate.previous(); System.out.println("Previous Element: " + number1); // Using the previousIndex() int index1 = iterate.previousIndex(); System.out.println("Position of the Previous element: " + index1); ) )
Вывод
ArrayList: (1, 3, 2) Предыдущий элемент: 3 Позиция предыдущего элемента: 0
В приведенном выше примере изначально экземпляр Iterator
был перед 1. Поскольку не было элемента перед 1, вызов previous()
метода вызовет исключение.
Затем мы использовали next()
методы 2 раза. Теперь Iterator
экземпляр будет между 3 и 2.
Следовательно, previous()
метод возвращает 3.