Интерфейс ListIterator
Интерфейс ListIterator
расширяет интерфейс Iterator
и используется для двустороннего обхода списка и видоизменения его элементов.
ListIterator
можно получить вызывая метод listIterator()
для коллекций, реализующих List.
Методы интерфейса ListIterator:
void add(Е obj)
- вставляетobj
перед элементом, который должен быть возвращен следующим вызовомnext()
.boolean hasNext()
- возвращаетtrue
, если есть следующий элемент. В противном случае возвращаетfalse
.boolean hasPrevious()
- возвращаетtrue
, если есть предыдущий элемент. В противном случае возвращаетfalse
.Е next()
- возвращает следующий элемент. Если следующего нет, инициируется исключениеNoSuchElementException
.int nextIndex()
- возвращает индекс следующего элемента. Если следующего нет, возвращается размер списка.- Е previous() - возвращает предыдущий элемент. Если предыдущего нет, инициируется исключение
NoSuchElementException
. int previousIndex()
- возвращает индекс предыдущего элемента. Если предыдущего нет, возвращается -1.void remove()
- удаляет текущий элемент из списка. Еслиremove()
вызван доnext()
илиprevious()
, инициируется исключениеIllegalStateException
.void set(Е obj)
- присваиваетobj
текущему элементу. Это элемент, возвращенный последним вызовомnext()
илиprevious()
.
Пример использования интерфейса ListIterator
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorDemo {
public static void main(String[] args) {
List<String> arrayList = Arrays.asList("A", "B", "C", "D");
ListIterator<String> listIterator = arrayList.listIterator();
while (listIterator.hasNext()) {
String element = listIterator.next();
listIterator.set(element + "+");
}
System.out.print("Измененный arrayList в обратном порядке: ");
while (listIterator.hasPrevious()) {
String element = listIterator.previous();
System.out.print(element + " ");
}
}
}
Please log in or register to have a possibility to add comment.