Sobes.tech
Junior

Mis on Java Stream API põhiidee?

sobes.tech AI

Vastus AI-lt

Stream API põhitegevus on pakkuda deklaratiivset viisi andmekogumite töötlemiseks. Selle asemel, et kasutada imperatiivset iteratiivset lähenemist koos selge tsükli ja seisundi juhtimisega, võimaldavad voogud describe what tuleb teha andmetega (filtreerimine, teisendamine, agregatsioon), jättes how selle tegemise API-le.

Põhikonceptsioonid:

  • Muutumatud: Voogud ei muuda algset andmeallikat. Voogude operatsioonid loovad uued vood või tulemused.
  • Hiline: Paljud voogude operatsioonid, nagu filter() ja map(), on vaheoperatsioonid. Need ei täida enne, kui on kutsutud lõplik operatsioon, näiteks collect() või forEach(). See võimaldab optimeerida täitmist.
  • Köögivõrk: Voogude operatsioonid võivad olla ühendatud voogudeks. Iga element läbib järjest või paralleelselt.
  • Paralleelne töötlemine: Voogud on disainitud võimaldama lihtsat paralleelset andmetöötlust, sageli minimaalse koodimuudatusega (parallelStream()).

Eelised:

  • Loetavam ja väljenduslikum kood keerukate kogumite operatsioonide jaoks.
  • Lihtne paralleelida.
  • Eemaldab boilerplate-koodi, mis on seotud iteratsioonidega.
// Näide: Filtreerimine ja teisendamine nimekirja ridadest
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");

List<Integer> lengths = names.stream()
                             .filter(name -> name.startsWith("A")) // Vaheoperatsioon
                             .map(String::length)             // Vaheoperatsioon
                             .collect(Collectors.toList());   // Lõplik operatsioon

// lengths on [5]