In Java non esiste un costrutto semplice per ripetere qualcosa N volte. Naturalmente possiamo creare un ciclo for, ma nella stragrande maggioranza dei casi non ci interessa quale tipo di variabile creiamo nel ciclo. Vogliamo solo che una parte del codice venga ripetuta N volte e il gioco è fatto.
Con l'introduzione delle espressioni lambda in Java 8, puoi usare qualcosa del genere:
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(); } }
probabilmente non è così piacevole alla vista o ovvio come il buon vecchio ciclo for, ma elimina una variabile extra nel ciclo. Se solo Java 8 facesse un ulteriore passo avanti e fornisse una sintassi "cioccolato" per gli argomenti nelle espressioni lambda, allora avremmo qualcosa come il codice Scala/Groovy, che renderebbe il codice molto più visivo. Ad esempio:
// Ну разве не здорово было бы иметь такую конструкцию в Java? repeat(10) { System.out.println("HELLO"); System.out.println("WORLD"); }
Fonte
GO TO FULL VERSION