У 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"); }
Джерело
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ