Junior
Na čo slúžia streamy v Jave?
sobes.tech AI
Odpoveď od AI
Pre deklaratívne spracovanie kolekcií dát. Umožňujú vykonávať sekvenčné alebo paralelné operácie nad prvkami kolekcií, ako je filtrovanie, mapovanie (transformácia), agregácia a zber výsledkov, čím je kód čitateľnejší a flexibilnejší.
Hlavné výhody:
- Deklaratívne: Namiesto opisu "ako" vykonať operáciu (cykly, iterátory), opisujeme "čo" treba urobiť s dátami.
- Paralelizmus: Je ľahké prepínať medzi sekvenčnou a paralelnou spracovaním, čo je užitočné pre systémy s viacerými jadrami.
- Línosť: Medzivýpočty sa vykonávajú iba v prípade potreby, pri prítomnosti terminálnej operácie.
- Kompaktnosť: Často umožňuje skrátiť objem kódu v porovnaní s tradičnými cyklami.
Příklad sekvenčného spracovania:
// Získanie zoznamu mien používateľov starších ako 18 rokov a ich prevod na veľké písmená
List<User> users = ... // Vaša kolekcia používateľov
List<String> adultUserNames = users.stream()
.filter(user -> user.getAge() >= 18) // Filtrácia podľa veku
.map(user -> user.getName().toUpperCase()) // Prevod mena na veľké písmená
.collect(Collectors.toList()); // Zber výsledkov do zoznamu
Příklad paralelného spracovania:
// Paralelné sčítanie veľkých čísel v zozname
List<Long> numbers = ... // Vaša kolekcia čísel
long sum = numbers.parallelStream()
.reduce(0L, Long::sum); // Paralelné sčítanie
Takto sa v Jave používajú streamy na funkcionálny a efektívny prístup ku spracovaniu dát.