Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Esercitazione con Stream API | Funzionalità e Tecniche Avanzate di Java
Quizzes & Challenges
Quizzes
Challenges
/
Strutture Dati Java

bookEsercitazione con Stream API

È il momento di esercitarsi con lo Stream API. Hai a disposizione alcuni compiti semplici che prevedono l'utilizzo di vari metodi dello Stream API. Questa volta non verranno fornite istruzioni specifiche. Invece, ti verrà data una lista su cui lavorare e quale dovrebbe essere il risultato atteso. In altre parole, il tuo obiettivo è eseguire operazioni sulla lista per ottenere il risultato desiderato.

Questo tipo di esercizio può aiutarti a sviluppare la capacità di raggiungere risultati senza una specifica chiara. Vedrai solo i dati di input e il risultato atteso.

Devi utilizzare lo Stream API per completare questi compiti!

Esercizio 1:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }

Utilizzare Stream API per elevare al quadrato ogni numero nella lista e raccogliere il risultato in una nuova lista. Output atteso:

[1, 4, 9, 16, 25]

Utilizzare i metodi map() e toList() in questo caso.

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> result = numbers.stream().map(e -> e * e).toList();
        System.out.println(result);
        // Write your code here
    }
}

Attività 2:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }

Utilizzare Stream API per trovare la lunghezza del nome più lungo nella lista. Output atteso:

7

Utilizzare i metodi intermedi map() e max(), e il metodo terminale get().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
        Integer result = names
                .stream()
                .map(e -> e.length())
                .max((integer, newInteger) -> Integer.compare(integer, newInteger))
                .get();
        System.out.println(result);
        // Write your code here
    }
}

Esercizio 3

Input:

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }

Utilizzare Stream API per contare il numero totale di parole distinte (senza distinzione tra maiuscole e minuscole) in tutte le frasi. Output atteso:

37

Utilizzare i metodi intermedi flatMap() e distinct(), e il metodo terminale count().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> sentences = Arrays.asList(
                "Java Stream API provides a fluent interface for processing sequences of elements.",
                "It supports functional-style operations on streams of elements, such as map-reduce transformations.",
                "In this exercise, you need to count the total number of words in all sentences."
        );
        long count = sentences.stream()
                .flatMap(e -> Arrays.stream(e.split(" ")))
                .distinct()
                .count();
        System.out.println(count);
        // Write your code here
    }
}

Attività 4:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }

Utilizzare Stream API per trovare la concatenazione delle prime due parole con lunghezza pari.

Output atteso:

bananacherry

Utilizzare i metodi intermedi filter() e limit(), e il metodo terminale collect().

package com.example;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        String result = words.stream()
                .filter(e -> e.length() % 2 == 0)
                .limit(2)
                .collect(Collectors.joining());
        System.out.println(result);
        // Write your code here
    }
}

Esercizio 5:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }

Utilizzare Stream API per trovare la somma dei quadrati dei numeri pari nella lista.

Output atteso:

220

Utilizzare i metodi intermedi mapToInt() e filter(), e il metodo terminale sum().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        int sum = numbers.stream()
                .mapToInt(e -> e * e)
                .filter(e -> e % 2 == 0)
                .sum();
        System.out.println(sum);
        // Write your code here
    }
}

Ottimo lavoro!

Se hai completato tutti i compiti, complimenti!

Alcuni metodi presenti negli esercizi potrebbero non essere stati trattati in precedenza. Per approfondirli, apri IntelliJ IDEA e verifica il loro funzionamento.

La programmazione è un processo di apprendimento continuo, quindi esplora nuove soluzioni, cerca online e consulta la documentazione quando necessario.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain how the Stream API works in these examples?

What are some other common Stream API methods I should know?

Can you give me more practice tasks like these?

bookEsercitazione con Stream API

Scorri per mostrare il menu

È il momento di esercitarsi con lo Stream API. Hai a disposizione alcuni compiti semplici che prevedono l'utilizzo di vari metodi dello Stream API. Questa volta non verranno fornite istruzioni specifiche. Invece, ti verrà data una lista su cui lavorare e quale dovrebbe essere il risultato atteso. In altre parole, il tuo obiettivo è eseguire operazioni sulla lista per ottenere il risultato desiderato.

Questo tipo di esercizio può aiutarti a sviluppare la capacità di raggiungere risultati senza una specifica chiara. Vedrai solo i dati di input e il risultato atteso.

Devi utilizzare lo Stream API per completare questi compiti!

Esercizio 1:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }

Utilizzare Stream API per elevare al quadrato ogni numero nella lista e raccogliere il risultato in una nuova lista. Output atteso:

[1, 4, 9, 16, 25]

Utilizzare i metodi map() e toList() in questo caso.

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> result = numbers.stream().map(e -> e * e).toList();
        System.out.println(result);
        // Write your code here
    }
}

Attività 2:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }

Utilizzare Stream API per trovare la lunghezza del nome più lungo nella lista. Output atteso:

7

Utilizzare i metodi intermedi map() e max(), e il metodo terminale get().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
        Integer result = names
                .stream()
                .map(e -> e.length())
                .max((integer, newInteger) -> Integer.compare(integer, newInteger))
                .get();
        System.out.println(result);
        // Write your code here
    }
}

Esercizio 3

Input:

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }

Utilizzare Stream API per contare il numero totale di parole distinte (senza distinzione tra maiuscole e minuscole) in tutte le frasi. Output atteso:

37

Utilizzare i metodi intermedi flatMap() e distinct(), e il metodo terminale count().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> sentences = Arrays.asList(
                "Java Stream API provides a fluent interface for processing sequences of elements.",
                "It supports functional-style operations on streams of elements, such as map-reduce transformations.",
                "In this exercise, you need to count the total number of words in all sentences."
        );
        long count = sentences.stream()
                .flatMap(e -> Arrays.stream(e.split(" ")))
                .distinct()
                .count();
        System.out.println(count);
        // Write your code here
    }
}

Attività 4:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }

Utilizzare Stream API per trovare la concatenazione delle prime due parole con lunghezza pari.

Output atteso:

bananacherry

Utilizzare i metodi intermedi filter() e limit(), e il metodo terminale collect().

package com.example;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        String result = words.stream()
                .filter(e -> e.length() % 2 == 0)
                .limit(2)
                .collect(Collectors.joining());
        System.out.println(result);
        // Write your code here
    }
}

Esercizio 5:

Input:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }

Utilizzare Stream API per trovare la somma dei quadrati dei numeri pari nella lista.

Output atteso:

220

Utilizzare i metodi intermedi mapToInt() e filter(), e il metodo terminale sum().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        int sum = numbers.stream()
                .mapToInt(e -> e * e)
                .filter(e -> e % 2 == 0)
                .sum();
        System.out.println(sum);
        // Write your code here
    }
}

Ottimo lavoro!

Se hai completato tutti i compiti, complimenti!

Alcuni metodi presenti negli esercizi potrebbero non essere stati trattati in precedenza. Per approfondirli, apri IntelliJ IDEA e verifica il loro funzionamento.

La programmazione è un processo di apprendimento continuo, quindi esplora nuove soluzioni, cerca online e consulta la documentazione quando necessario.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 5
some-alt