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