Sobes.tech
Middle

Quel est le but de l'utilisation des streams dans la nouvelle version de Java?

sobes.tech IA

Réponse de l'IA

Simplification du travail avec les collections de données.

Objectifs principaux:

  • Fonctionnalité: Permettent d'utiliser des expressions lambda et d'autres interfaces fonctionnelles pour le traitement déclaratif des données.
  • Parallélisme: Facilitent la parallélisation des opérations sur les collections sans gestion explicite des threads.
  • Immutabilité: Les streams ne modifient pas la collection d'origine. Les opérations sur les streams créent de nouveaux streams ou résultats finaux.
  • Performance: L'évaluation paresseuse permet d'exécuter les opérations uniquement lorsque cela est nécessaire.
  • Lisibilité: Le code devient plus concis et expressif par rapport aux boucles traditionnelles.

Exemple d'utilisation:

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

public class StreamExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("apple", "banana", "orange", "grape");

        // Filtrage et transformation avec streams
        List<String> filteredFruits = fruits.stream()
                                           .filter(s -> s.startsWith("a")) // Ne garder que ceux commençant par "a"
                                           .map(String::toUpperCase)     // Convertir en majuscules
                                           .collect(Collectors.toList());   // Rassembler dans une nouvelle liste

        System.out.println(filteredFruits); // Affiche: [APPLE]
    }
}

En résumé, les streams rendent le code plus moderne, efficace et lisible lors du travail avec des collections de données.