Poznámky

Študijné poznámky

Sem budeme pridávať poznámky, ktoré mi pošleš.

Java Streams - spojeny sumar (vsetky poznamky)

[1] Java Streams - zber, redukcia, IntStream

.filter(x -> <some condition>) // necha tie, co splnia podmienku
.allMatch(x -> <some_condition>)
.anyMatch(x -> <some_condition>)
.collect(Collectors.toList())
.collect(Collectors.toMap(
    k -> k,
    val -> val,
    (a, b) -> a + b // optional merge function (spajanie duplicit)
))

.reduce((a, b) -> a + b)
.reduce(100, (a, b) -> a + b) // s pociatocnou hodnotou
// Pri prazdnom streame sa bez identity lahko dostanes k erroru.

.distinct()
.flatMap(x -> array) // vysledok je 1D array (concat vrateneho)
.sorted()
.limit(n)
.skip(n)

Arrays.stream("nejaka abeceda".split("")) // toCharArray nepouzivat

IntStream.rangeClosed(a, b) // inclusive range
IntStream.range(a, b).boxed() // vrati Stream<Integer>
IntStream.range(a, b).boxed().toList() // vrati List
IntStream.range(1, 100).boxed().max(Integer::compareTo).get()
IntStream.range(1, 100).max().getAsInt()

[2] Intermediate operacie (lazy, vracaju Stream)

.filter(e -> e % 2 == 0)          // filtrovanie
.map(e -> e * e)                  // transformacia kazdeho prvku
.flatMap(e -> Stream.of(...))     // rozbalenie vnoreneho streamu
.sorted()                         // prirodzene zoradenie
.sorted((a, b) -> ...)            // vlastny comparator
.distinct()                       // odstranenie duplikatov
.limit(n)                         // prvych n prvkov
.skip(n)                          // preskoci prvych n
.peek(e -> ...)                   // nahlad bez zmeny (debug)
.takeWhile(e -> e < 10)           // berie kym plati podmienka
.dropWhile(e -> e < 10)           // vyhadzuje kym plati podmienka
.parallel()                       // prepne na paralelny
.sequential()                     // prepne na sekvencny
Späť na domov