English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В данном руководстве мы будем изучать интерфейс Java ListIterator с помощью примеров.
Интерфейс ListIterator в рамке Java Collections Framework предоставляет функциональность для доступа к элементам списка.
Он двунаправленный. Это означает, что он позволяет нам итерировать элементы списка в двух направлениях.
Он наследует интерфейс Iterator.
Интерфейс List предоставляет метод ListIterator(), который возвращает экземпляр интерфейса ListIterator.
Интерфейс ListIterator предоставляет методы, которые можно использовать для выполнения различных операций с элементами списка.
hasNext() - Возвращает true, если в списке есть элементы
next() - Возвращает следующий элемент списка
nextIndex() - Возвращает индекс элемента, который будет возвращен методом next()
previous() - Возвращает предыдущий элемент списка
previousIndex() - Возвращает индекс элемента, который будет возвращен методом previous()
remove() - Удалить элемент, возвращаемый next() или previous()
set() - Заменить элемент, возвращаемый next() или previous(), на указанный элемент
В следующем примере мы реализовали методы next(), nextIndex() и hasNext() интерфейса ListIterator в списке массивов.
import java.util.ArrayList; import java.util.ListIterator; class Main { public static void main(String[] args) { // Создание ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Создание экземпляра ListIterator ListIterator<Integer> iterate = numbers.listIterator(); // Использование метода next() int number1 = iterate.next(); System.out.println("Следующий элемент: " + number1); // Использование nextIndex() int index1 = iterate.nextIndex(); System.out.println("Позиция следующего элемента: " + index1); // Использование метода hasNext() System.out.println("Есть ли следующий элемент? " + iterate.hasNext()); } }
Результат вывода
ArrayList: [1, 3, 2] Следующий элемент: 1 Позиция следующего элемента: 1 Есть ли следующий элемент? true
В следующем примере мы реализовали методы previous() и previousIndex() интерфейса ListIterator в списке массивов.
import java.util.ArrayList; import java.util.ListIterator; class Main { public static void main(String[] args) { // Создание ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Создание экземпляра ListIterator ListIterator<Integer> iterate = numbers.listIterator(); iterate.next(); iterate.next(); // Использование метода previous () int number1 = iterate.previous(); System.out.println("Предыдущий элемент: " + number1); // Использование previousIndex () int index1 = iterate.previousIndex(); System.out.println("Позиция предыдущего элемента: " + index1); } }
Результат вывода
ArrayList: [1, 3, 2] Предыдущий элемент: 3 Позиция предыдущего элемента: 0
В данном примере в начале экземпляр итератора находился перед 1. Поскольку перед 1 не было элементов, вызов метода previous() вызовет исключение.
Затем мы использовали метод next() 2 раза. Теперь экземпляр Iterator будет в диапазоне от 3 до 2.
Таким образом, метод previous() возвращает 3.