Sobes.tech
Middle

Mis on voogude kasutamise eesmärk Java uues versioonis?

sobes.tech AI

Vastus AI-lt

Andmete kogumitega töötamise lihtsustamine.

Peamised eesmärgid:

  • Funktsionaalsus: Võimaldab kasutada lambda-väljendeid ja teisi funktsionaalseid liideseid deklaratiivseks andmetöötluseks.
  • Paralleelsus: Lihtsustab operatsioonide paralleelset täitmist kogumike üle ilma otsese lõimede juhtimiseta.
  • Muutumatud: Struumid ei muuda algset kogumit. Struumide operatsioonid loovad uued struumid või lõpptulemused.
  • Tõhusus: Lazy evaluation (hullumeelne hindamine) võimaldab operatsioone teha ainult siis, kui see on vajalik.
  • Lugemise lihtsus: Kood muutub lühemaks ja väljendusrikkamaks võrreldes traditsiooniliste tsüklitega.

Näide kasutamisest:

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

        // Struumide abil filtreerimine ja teisendamine
        List<String> filteredFruits = fruits.stream()
                                           .filter(s -> s.startsWith("a")) // Ainult need, mis algavad "a"-ga
                                           .map(String::toUpperCase)     // Muuta suureks
                                           .collect(Collectors.toList());   // Koonda uus nimekiri

        System.out.println(filteredFruits); // Väljund: [APPLE]
    }
}

Kokkuvõtteks muudab struumid koodi moodsamaks, tõhusamaks ja loetavamaks, töötades andmekogumitega.