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.