Внутренняя итерация — это механизм, при котором сам итератор контролирует процесс итерации, а не клиентский код. В этой модели клиент передаёт операцию итератору, и итератор применяет эту операцию ко всем элементам коллекции.
Основное различие в паттернах итерации касается того, кто контролирует процесс:
Java 8 представила Streams и лямбда-выражения, которые обеспечивают внутреннюю итерацию через функциональное программирование:
list.forEach(element -> System.out.println(element));
Вместо того чтобы вручную итерировать с помощью явного цикла, клиент передаёт функцию (лямбду) итератору. Итератор затем применяет эту функцию к каждому элементу, не требуя от клиента управления циклом.
Вместо внешней итерации:
for (String item : list) {
System.out.println(item);
}
Используй внутреннюю итерацию:
list.stream().forEach(System.out::println);
Stream API берёт на себя все детали итерации, позволяя тебе сосредоточиться на том, какую операцию выполнить, а не на том, как итерировать.
При внутренней итерации клиентский код отвечает за управление условием цикла и определение того, когда итерация должна остановиться.
Новый — ещё не проверен сообществом
Вы