🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Funzioni Lambda Java

Codegrind TeamJul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi della creazione ed utilizzo delle funzioni lambda in Java.

Esercizio 1

Sommare due numeri utilizzando un' espressione lambda:
public class SommaNumeriLambda {
    public static void main(String[] args) {
        Calcolatore calcolatore = (a, b) -> a + b;

        int risultato = calcolatore.calcola(5, 3);

        System.out.println("La somma è: " + risultato);
    }

    interface Calcolatore {
        int calcola(int a, int b);
    }
}

Esercizio 2

Verificare se una parola è lunga più di un certo numero di caratteri utilizzando un' espressione lambda:
public class ParolaLungaLambda {
    public static void main(String[] args) {
        VerificatoreParola verificatore = (parola, lunghezza) -> parola.length() > lunghezza;

        String parola = "esercizio";
        int lunghezzaMinima = 5;

        boolean isLunga = verificatore.verifica(parola, lunghezzaMinima);

        if (isLunga) {
            System.out.println("La parola è lunga più di " + lunghezzaMinima + " caratteri.");
        } else {
            System.out.println("La parola non è lunga più di " + lunghezzaMinima + " caratteri.");
        }
    }

    interface VerificatoreParola {
        boolean verifica(String parola, int lunghezza);
    }
}

Esercizio 3

Calcolare l'area di un cerchio utilizzando un' espressione lambda:
public class CalcolaAreaCerchioLambda {
    public static void main(String[] args) {
        CalcolatoreArea calcolatore = raggio -> Math.PI * raggio * raggio;

        double raggio = 2.5;

        double area = calcolatore.calcola(raggio);

        System.out.println("L'area del cerchio è: " + area);
    }

    interface CalcolatoreArea {
        double calcola(double raggio);
    }
}

Esercizio 4

Verificare se un numero è positivo utilizzando un' espressione lambda:
public class NumeroPositivoLambda {
    public static void main(String[] args) {
        VerificatoreNumero verificatore = numero -> numero > 0;

        int numero = 7;

        boolean isPositivo = verificatore.verifica(numero);

        if (isPositivo) {
            System.out.println("Il numero è positivo.");
        } else {
            System.out.println("Il numero non è positivo.");
        }
    }

    interface VerificatoreNumero {
        boolean verifica(int numero);
    }
}

Esercizio 5

Concatenare due stringhe utilizzando un' espressione lambda:
public class ConcatenaStringheLambda {
    public static void main(String[] args) {
        ConcatenatoreStringhe concatenatore = (s1, s2) -> s1 + s2;

        String stringa1 = "Ciao";
        String stringa2 = "Mondo!";

        String risultato = concatenatore.concatena(stringa1, stringa2);

        System.out.println("Risultato: " + risultato);
    }

    interface ConcatenatoreStringhe {
        String concatena(String s1, String s2);
    }
}

Esercizio 6

Verificare se un numero è pari utilizzando un' espressione lambda:
public class NumeroPariLambda {
    public static void main(String[] args) {
        VerificatoreNumero verificatore = numero -> numero % 2 == 0;

        int numero = 6;

        boolean isPari = verificatore.verifica(numero);

        if (isPari) {
            System.out.println("Il numero è pari.");
        } else {
            System.out.println("Il numero non è pari.");
        }
    }

    interface VerificatoreNumero {
        boolean verifica(int numero);
    }
}

Esercizio 7

Calcolare la somma di una lista di numeri utilizzando un' espressione lambda:
import java.util.ArrayList;
import java.util.List;

public class SommaListaNumeriLambda {
    public static void main(String[] args) {
        List<Integer> numeri = new ArrayList<>();
        numeri.add(5);
        numeri.add(3);
        numeri.add(8);
        numeri.add(2);

        Sommatore sommatore = lista -> {
            int somma = 0;
            for (int numero : lista) {
                somma += numero;
            }
            return somma;
        };

        int risultato = sommatore.somma(numeri);

        System.out.println("La somma è: " + risultato);
    }

    interface Sommatore {
        int somma(List<Integer> lista);
    }
}

Esercizio 8

Verificare se una parola è palindroma utilizzando un' espressione lambda:
public class ParolaPalindromaLambda {
    public static void main(String[] args) {
        VerificatoreParola verificatore = parola -> {
            String parolaInvertita = "";

            for (int i = parola.length() - 1; i >= 0; i--) {
                parolaInvertita += parola.charAt(i);
            }

            return parola.equalsIgnoreCase(parolaInvertita);
        };

        String parola = "radar";

        boolean isPalindroma = verificatore.verifica(parola);

        if (isPalindroma) {
            System.out.println("La parola è palindroma.");
        } else {
            System.out.println("La parola non è palindroma.");
        }
    }

    interface VerificatoreParola {
        boolean verifica(String parola);
    }
}

Esercizio 9

Calcolare la potenza di un numero utilizzando un' espressione lambda:
public class PotenzaLambda {
    public static void main(String[] args) {
        CalcolatorePotenza calcolatore = (base, esponente) -> {
            int risultato = 1;
            for (int i = 0; i < esponente; i++) {
                risultato *= base;
            }
            return risultato;
        };

        int base = 2;
        int esponente = 5;

        int potenza = calcolatore.calcola(base, esponente);

        System.out.println(base + " elevato a " + esponente + " è: " + potenza);
    }

    interface CalcolatorePotenza {
        int calcola(int base, int esponente);
    }
}

Esercizio 10

Calcolare la media di una lista di numeri utilizzando un' espressione lambda:
import java.util.ArrayList;
import java.util.List;

public class MediaListaNumeriLambda {
    public static void main(String[] args) {
        List<Integer> numeri = new ArrayList<>();
        numeri.add(5);
        numeri.add(3);
        numeri.add(8);
        numeri.add(2);

        CalcolatoreMedia calcolatore = lista -> {
            int somma = 0;
            for (int numero : lista) {
                somma += numero;
            }
            return (double) somma / lista.size();
        };

        double media = calcolatore.calcola(numeri);

        System.out.println("La media è: " + media);
    }

    interface CalcolatoreMedia {
        double calcola(List<Integer> lista);
    }
}