JavaRush /Java блог /Архив info.javarush /Создание собственного цикла с помощью лямбда-выражений в ...
gnev
24 уровень

Создание собственного цикла с помощью лямбда-выражений в Java 8

Статья из группы Архив info.javarush
В Java нет простой конструкции для повтора чего-либо N-ого количества раз. Конечно, мы можем создать цикл for, но в подавляющем большинстве случаев нам совершенно все равно, что за переменную мы создаем в цикле. Мы просто хотим, чтобы некоторая часть кода была повторена N раз и все. С появлением лямбда-выражений в Java 8 вы можете использовать что-то наподобие этого: public class RepeatDemo { public static void main(String[] args) { // Повтор одной строки repeat(10, () -> System.out.println("HELLO")); // Повтор нескольких строк repeat(10, () -> { System.out.println("HELLO"); System.out.println("WORLD"); }); } static void repeat(int n, Runnable r) { for (int i = 0; i < n; i++) r.run(); } } Вероятно, это не радует глаз или не так очевидно, как старый добрый цикл for, но зато вы избавляетесь от лишней переменной в цикле. Если бы только Java 8 сделала еще шаг вперед и обеспечила бы аргументам в лямбда-выражениях "шоколадный" синтаксис, тогда бы мы получили что-то наподобие Scala/Groovy кода, что сделало бы код куда более наглядным. Например: // Ну разве не здорово было бы иметь такую конструкцию в Java? repeat(10) { System.out.println("HELLO"); System.out.println("WORLD"); } Источник
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
kerradus Уровень 30
25 апреля 2014
Спасибо за перевод. А можно ссылочку на оригинал? Если переводы делаешь, то всегда, желательно, оставлять ссылку на оригинал. А то иногда непонятные моменты «съедаются» переводом.