Sobes.tech
Middle

Care este scopul utilizării streamurilor în noua versiune Java?

sobes.tech AI

Răspuns de la AI

Simplificarea lucrului cu colecțiile de date.

Obiective principale:

  • Funcționalitate: Permite utilizarea expresiilor lambda și a altor interfețe funcționale pentru procesarea declarativă a datelor.
  • Paralelism: Facilitează paralelizarea operațiilor asupra colecțiilor fără gestionare explicită a firelor de execuție.
  • Imutabilitate: Stream-urile nu modifică colecția originală. Operațiile pe stream-uri creează noi stream-uri sau rezultate finale.
  • Performanță: Evaluarea leneșă (lazy evaluation) permite executarea operațiilor doar atunci când este necesar.
  • Citibilitate: Codul devine mai concis și expresiv comparativ cu buclele tradiționale.

Exemplu de utilizare:

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");

        // Filtrare și transformare folosind stream-uri
        List<String> filteredFruits = fruits.stream()
                                           .filter(s -> s.startsWith("a")) // Doar cele începând cu "a"
                                           .map(String::toUpperCase)     // Convertire în majuscule
                                           .collect(Collectors.toList());   // Colectare într-o listă nouă

        System.out.println(filteredFruits); // Afișează: [APPLE]
    }
}

În concluzie, stream-urile fac codul mai modern, eficient și mai ușor de citit atunci când se lucrează cu colecții de date.