Метод iterator
Метод iterator возвращает объект Iterator,
который позволяет последовательно перебирать элементы
списка. Итератор поддерживает три основных метода:
hasNext проверяет наличие следующего элемента,
next возвращает следующий элемент и переводит
указатель вперед, а remove удаляет последний
возвращенный элемент из списка. Метод не принимает
параметров.
Синтаксис
list.iterator()
Пример
Давайте получим итератор списка и переберем все его элементы в цикле:
import java.util.List;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("a", "b", "c", "d", "e");
Iterator<String> iter = list.iterator();
while (iter.hasNext())
{
String elem = iter.next();
System.out.println(elem);
}
}
}
Результат выполнения кода:
"a"
"b"
"c"
"d"
"e"
Пример
Давайте удалим из списка все четные числа при
помощи метода remove итератора:
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = new ArrayList<>(List.of(1, 2, 3, 4, 5));
Iterator<Integer> iter = list.iterator();
while (iter.hasNext())
{
Integer elem = iter.next();
if (elem % 2 == 0)
{
iter.remove();
}
}
System.out.println(list);
}
}
Результат выполнения кода:
[1, 3, 5]
Пример
Давайте посчитаем сумму всех элементов списка, перебирая их через итератор:
import java.util.List;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
Iterator<Integer> iter = list.iterator();
int res = 0;
while (iter.hasNext())
{
res += iter.next();
}
System.out.println(res);
}
}
Результат выполнения кода:
15