Sobes.tech
Middle

Koks yra tikslas naudoti srautus naujoje Java versijoje?

sobes.tech AI

Atsakymas iš AI

Supaprastinti darbą su duomenų kolekcijomis.

Pagrindiniai tikslai:

  • Funkcionalumas: Leidžia naudoti lambda išraiškas ir kitas funkcines sąsajas deklaratyviam duomenų apdorojimui.
  • Paralelizmas: Palengvina operacijų vykdymą paraleliai kolekcijose be aiškios srautų valdymo.
  • Nepriklausomumas: Srautai nepakeičia pradinės kolekcijos. Operacijos su srautais kuria naujus srautus arba galutinius rezultatus.
  • Našumas: Lazy evaluation (vėlyvas įvertinimas) leidžia vykdyti operacijas tik tada, kai jų reikia.
  • Skaitomumas: Kodas tampa trumpesnis ir išraiškingesnis, palyginti su tradiciniais ciklais.

Naudojimo pavyzdys:

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

        // Filtravimas ir transformavimas naudojant srautus
        List<String> filteredFruits = fruits.stream()
                                           .filter(s -> s.startsWith("a")) // Tik tie, kurie prasideda "a"
                                           .map(String::toUpperCase)     // Konvertuoti į didžiąsias raides
                                           .collect(Collectors.toList());   // Surinkti į naują sąrašą

        System.out.println(filteredFruits); // Išvestis: [APPLE]
    }
}

Apibendrinant, srautai daro kodą modernesnį, efektyvesnį ir skaitomesnį dirbant su duomenų kolekcijomis.