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.