Esercitazione 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
1234567891011package 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
1234567891011package 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
123456789101112131415package 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
1234567891011package 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
1234567891011package 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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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?
Fantastico!
Completion tasso migliorato a 4
Esercitazione 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
1234567891011package 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
1234567891011package 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
123456789101112131415package 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
1234567891011package 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
1234567891011package 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.
Grazie per i tuoi commenti!