РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
262 of 1163 menu

Метод listIterator

Метод listIterator возвращает специальный объект ListIterator, который предназначен для двунаправленного обхода элементов списка ArrayList. В отличие от обычного итератора, полученного через метод iterator, данный итератор умеет двигаться не только вперед, но и назад. Метод может быть вызван без параметров (тогда итератор устанавливается в начало списка) или с одним целочисленным параметром - индексом, с которого начнется обход.

Синтаксис

list.listIterator() list.listIterator(index)

Пример

Давайте создадим список и получим его итератор, установленный в начало. Пройдемся по элементам в прямом направлении с помощью метода hasNext и next:

import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Main { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(List.of("a", "b", "c", "d", "e")); ListIterator<String> iterator = list.listIterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } }

Результат выполнения кода:

"a" "b" "c" "d" "e"

Пример

Теперь давайте пройдемся по списку в обратном направлении с помощью методов hasPrevious и previous. Для этого сначала переместим итератор в конец списка:

import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Main { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(List.of("a", "b", "c", "d", "e")); ListIterator<String> iterator = list.listIterator(); while (iterator.hasNext()) { iterator.next(); } while (iterator.hasPrevious()) { System.out.println(iterator.previous()); } } }

Результат выполнения кода:

"e" "d" "c" "b" "a"

Пример

Метод listIterator можно также использовать для изменения элементов прямо во время обхода. Давайте заменим каждый элемент списка на его длину:

import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Main { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(List.of("abcde", "12345")); ListIterator<String> iterator = list.listIterator(); while (iterator.hasNext()) { String element = iterator.next(); iterator.set(String.valueOf(element.length())); } System.out.println(list); } }

Результат выполнения кода:

[5, 5]

Смотрите также

  • метод iterator,
    который возвращает обычный однонаправленный итератор
  • метод get,
    который возвращает элемент по индексу
  • метод set,
    который заменяет элемент по индексу
  • метод ArrayList,
    который представляет класс динамического массива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить