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.