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); }}