Интерфейс Iterator
В этом разделе рассмотрим что такое итератор Java языка.
Перебор содержимого коллекции может быть осуществлен двумя способами: c помощью цикла for each и с помощью итератора.
Итератор позволяет осуществлять обход коллекции и при желании удалять избранные элементы. Используется интерфейс Iterator
.
Чтобы получить объект итератора, вызовите метод Iterator<E> iterator()
.
Методы интерфейса Iterator:
boolean hasNext()
- возвращаетtrue
, если есть еще элементы. В противном случае возвращаетfalse
.E next()
- возвращает следующий элемент. Если следующий элемент коллекции отсутствует, то методnext()
генерирует исключениеNoSuchElementException
.void remove()
- удаляет текущий элемент. Возбуждает исключениеIllegalStateException
, если предпринимается попытка вызватьremove()
, которой не предшествовал вызовnext()
.
Пример использования интерфейса Iterator
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorDemo {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<>();
arrayList.add("C");
arrayList.add("A");
arrayList.add("E");
arrayList.add("B");
arrayList.add("D");
arrayList.add("F");
Iterator<String> iterator = arrayList.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.print(element + " ");
}
}
}
Все классы в каркасе коллекций усовершенствованы таким образом, чтобы реализовывать интерфейс Iterable
. Это означает, что содержимое коллекции можно перебрать, организовав цикл for
в стиле for each. Конструкция for each скрывает итератор, поэтому нельзя вызвать метод remove()
.
Please log in or register to have a possibility to add comment.