🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi su Stream API in Java

Codegrind Team•Jul 12 2024

Ecco degli esercizi con soluzione per praticare l’uso delle Stream API in Java.

Esercizio 1: Filtro di una Lista

Utilizzare le Stream API per filtrare una lista di numeri e ottenere solo i numeri pari.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class FiltroLista {
    public static void main(String[] args) {
        List<Integer> numeri = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        List<Integer> numeriPari = numeri.stream()
                                         .filter(n -> n % 2 == 0)
                                         .collect(Collectors.toList());

        System.out.println("Numeri pari: " + numeriPari);
    }
}

Esercizio 2: Mappatura di una Lista

Utilizzare le Stream API per mappare una lista di stringhe alla loro lunghezza.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class MappaLista {
    public static void main(String[] args) {
        List<String> parole = Arrays.asList("ciao", "mondo", "stream", "api");
        List<Integer> lunghezze = parole.stream()
                                        .map(String::length)
                                        .collect(Collectors.toList());

        System.out.println("Lunghezze delle parole: " + lunghezze);
    }
}

Esercizio 3: Riduzione di una Lista

Utilizzare le Stream API per calcolare la somma di una lista di numeri interi.
import java.util.Arrays;
import java.util.List;

public class RiduzioneLista {
    public static void main(String[] args) {
        List<Integer> numeri = Arrays.asList(1, 2, 3, 4, 5);
        int somma = numeri.stream()
                          .reduce(0, Integer::sum);

        System.out.println("Somma dei numeri: " + somma);
    }
}

Esercizio 4: Ordinamento di una Lista

Utilizzare le Stream API per ordinare una lista di stringhe in ordine alfabetico.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class OrdinamentoLista {
    public static void main(String[] args) {
        List<String> parole = Arrays.asList("banana", "mela", "arancia", "kiwi");
        List<String> paroleOrdinate = parole.stream()
                                            .sorted()
                                            .collect(Collectors.toList());

        System.out.println("Parole ordinate: " + paroleOrdinate);
    }
}

Esercizio 5: Distinct su una Lista

Utilizzare le Stream API per ottenere una lista di numeri distinti.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class DistinctLista {
    public static void main(String[] args) {
        List<Integer> numeri = Arrays.asList(1, 2, 2, 3, 4, 4, 5);
        List<Integer> numeriDistinti = numeri.stream()
                                             .distinct()
                                             .collect(Collectors.toList());

        System.out.println("Numeri distinti: " + numeriDistinti);
    }
}

Esercizio 6: Conteggio di Elementi in una Lista

Utilizzare le Stream API per contare il numero di elementi in una lista di stringhe che iniziano con una lettera specifica.
import java.util.Arrays;
import java.util.List;

public class ConteggioElementi {
    public static void main(String[] args) {
        List<String> parole = Arrays.asList("apple", "banana", "avocado", "cherry", "apricot");
        long conteggio = parole.stream()
                               .filter(parola -> parola.startsWith("a"))
                               .count();

        System.out.println("Numero di parole che iniziano con 'a': " + conteggio);
    }
}