Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Pratique Avec l'API Stream | Fonctionnalités et Techniques Avancées de Java
Quizzes & Challenges
Quizzes
Challenges
/
Structures de Données Java

bookPratique Avec l'API Stream

Il est temps de pratiquer avec l'API Stream. Vous avez quelques tâches simples impliquant l'utilisation de différentes méthodes de l'API Stream. Cette fois, aucune consigne précise ne sera fournie. À la place, une liste à manipuler ainsi que le résultat attendu vous seront donnés. En d'autres termes, votre objectif est d'effectuer des opérations sur la liste afin d'obtenir le résultat attendu.

Ce type d'exercice vous aide à développer la capacité à atteindre un résultat sans spécification claire. Vous ne verrez que les données d'entrée et le résultat attendu.

Vous devez utiliser l'API Stream pour réaliser ces exercices !

Exercice 1 :

Entrée :

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

Utiliser l'API Stream pour élever au carré chaque nombre de la liste et collecter le résultat dans une nouvelle liste. Sortie attendue :

[1, 4, 9, 16, 25]

Utiliser ici les méthodes map() et toList().

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

Tâche 2 :

Entrée :

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

Utiliser l’API Stream pour trouver la longueur du nom le plus long dans la liste. Sortie attendue :

7

Utiliser les méthodes intermédiaires map() et max(), ainsi que la méthode 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
    }
}

Tâche 3

Entrée :

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

Utiliser l'API Stream pour compter le nombre total de mots distincts (insensible à la casse) dans toutes les phrases. Sortie attendue :

37

Utiliser les méthodes intermédiaires flatMap() et distinct(), ainsi que la méthode 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
    }
}

Tâche 4 :

Entrée :

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

Utiliser l'API Stream pour trouver la concaténation des deux premiers mots ayant une longueur paire.

Sortie attendue :

bananacherry

Utiliser les méthodes intermédiaires filter() et limit(), ainsi que la méthode 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
    }
}

Tâche 5 :

Entrée :

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

Utiliser l’API Stream pour trouver la somme des carrés des nombres pairs dans la liste.

Résultat attendu :

220

Utiliser les méthodes intermédiaires mapToInt() et filter(), ainsi que la méthode 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
    }
}

Bon travail !

Si vous avez terminé toutes les tâches, félicitations !

Certains méthodes utilisées dans les exercices n'ont peut-être pas été abordées précédemment. Pour les explorer, ouvrez IntelliJ IDEA et vérifiez leur fonctionnalité.

La programmation implique un apprentissage continu ; explorez donc de nouvelles solutions, effectuez des recherches en ligne et consultez la documentation si nécessaire.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

bookPratique Avec l'API Stream

Glissez pour afficher le menu

Il est temps de pratiquer avec l'API Stream. Vous avez quelques tâches simples impliquant l'utilisation de différentes méthodes de l'API Stream. Cette fois, aucune consigne précise ne sera fournie. À la place, une liste à manipuler ainsi que le résultat attendu vous seront donnés. En d'autres termes, votre objectif est d'effectuer des opérations sur la liste afin d'obtenir le résultat attendu.

Ce type d'exercice vous aide à développer la capacité à atteindre un résultat sans spécification claire. Vous ne verrez que les données d'entrée et le résultat attendu.

Vous devez utiliser l'API Stream pour réaliser ces exercices !

Exercice 1 :

Entrée :

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

Utiliser l'API Stream pour élever au carré chaque nombre de la liste et collecter le résultat dans une nouvelle liste. Sortie attendue :

[1, 4, 9, 16, 25]

Utiliser ici les méthodes map() et toList().

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

Tâche 2 :

Entrée :

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

Utiliser l’API Stream pour trouver la longueur du nom le plus long dans la liste. Sortie attendue :

7

Utiliser les méthodes intermédiaires map() et max(), ainsi que la méthode 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
    }
}

Tâche 3

Entrée :

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

Utiliser l'API Stream pour compter le nombre total de mots distincts (insensible à la casse) dans toutes les phrases. Sortie attendue :

37

Utiliser les méthodes intermédiaires flatMap() et distinct(), ainsi que la méthode 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
    }
}

Tâche 4 :

Entrée :

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

Utiliser l'API Stream pour trouver la concaténation des deux premiers mots ayant une longueur paire.

Sortie attendue :

bananacherry

Utiliser les méthodes intermédiaires filter() et limit(), ainsi que la méthode 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
    }
}

Tâche 5 :

Entrée :

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

Utiliser l’API Stream pour trouver la somme des carrés des nombres pairs dans la liste.

Résultat attendu :

220

Utiliser les méthodes intermédiaires mapToInt() et filter(), ainsi que la méthode 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
    }
}

Bon travail !

Si vous avez terminé toutes les tâches, félicitations !

Certains méthodes utilisées dans les exercices n'ont peut-être pas été abordées précédemment. Pour les explorer, ouvrez IntelliJ IDEA et vérifiez leur fonctionnalité.

La programmation implique un apprentissage continu ; explorez donc de nouvelles solutions, effectuez des recherches en ligne et consultez la documentation si nécessaire.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 5
some-alt