Sobes.tech
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.