Middle
Aký je účel používania streamov v novej verzii Javy?
sobes.tech AI
Odpoveď od AI
Zjednodušenie práce s kolekciami dát.
Hlavné ciele:
- Funkcionalita: Umožňujú používanie lambda výrazov a ďalších funkčných rozhraní na deklaratívne spracovanie dát.
- Paralelizmus: Uľahčujú paralelné vykonávanie operácií nad kolekciami bez explicitnej správy vlákien.
- Nemennosť: Streamy nemenia pôvodnú kolekciu. Operácie na streamoch vytvárajú nové streamy alebo konečné výsledky.
- Výkon: Lazy evaluation (lenivé vyhodnocovanie) umožňuje vykonávať operácie iba keď sú potrebné.
- Čitateľnosť: Kód je stručnejší a výstižnejší v porovnaní s tradičnými slučkami.
Príklad použitia:
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");
// Filtrovanie a transformácia pomocou streamov
List<String> filteredFruits = fruits.stream()
.filter(s -> s.startsWith("a")) // Len tie začínajúce na "a"
.map(String::toUpperCase) // Prevod na veľké písmená
.collect(Collectors.toList()); // Zhromažďovanie do novej listy
System.out.println(filteredFruits); // Výstup: [APPLE]
}
}
Zhrnutie, streamy robia kód modernejším, efektívnejším a čitateľnejším pri práci s kolekciami dát.