Streams API Flashcards

1
Q

Vyjmenuj package a ifc, ktera se pouzivaji ve Streamech (5)

A

java.util.function:
Predicate
Function
UnaryOperator
Consumer
Supplier

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Metoda ifc Predicate

A

boolean test(T t)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Metoda ifc Function

A

R apply(T t)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Metoda ifc UnaryOperator

A

T apply(T t)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Metoda ifc Consumer

A

void accept(T t)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Metoda ifc Supplier

A

T get()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Streamy pro primitivni typy k odstraneni nutnosti autoboxingu (3)

A

IntStream
LongStream
DoubleStream

StreamSupport.longStream(spliterator, false)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Druh funkce, kterou lze pouzit uprostred stream zpracovani (8)

A

Intermediate
filter
map
flatMap
mapToDouble
distinct
skip
peek
dropWhile
sorted

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Druh funkce, kterou lze pouzit na konci stream zpracovani (9)

A

Terminal
forEach
forEachOrdered
reduce
collect
sum,count,min,max,average

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Druh funkce, kterou lze pouzit pro zuzeni nekonecneho streamu na konecny (7)

A

Short-circuit
takeWhile
limit
allMatch
anyMatch
noneMatch
findAny
findFirst

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

IntStream: Jaky je nazev prislusneho predicate interface a predpis jeho funkce

A

IntPredicate
boolean testInt(int i)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Zpracovani streamu: druh, kdy se zacne, co vse se vyhodnocuje

A

Lazy
Az je to nutne
Jen to, co je nutne pro vysledek

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Stream je mutable/immutable

A

Immutable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Bi varianta: consumer ifc a predpis jeho metody

A

BiConsumer
void accept(S s, T t)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Bi varianta: unaryOperator ifc a predpis jeho metody

A

BinaryOperator
T apply(T t1, T t2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Sekvencni a paralelni stream se z listu udela pomoci…
Stream z array se udela pomoci…
Stream se ze spliteratoru udela pomoci…

A

list.stream()
list.stream().parallel() / list.parallelStream()
Arrays.stream(array)
StreamSupport.stream(spliterator, isParallel)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Funkce, kterou se kombinuji consumeri

A

c1.andThen(c2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Napis consumera pro scitani

A

Consumer<Integer> c = (a,b) -> a+b;</Integer>

19
Q

Function.identity(x) vraci

20
Q

Predicates lze spojovat pomoci metod (2), negovat pomoci metod (2)

A

and, or
negate, P.not(p)

21
Q

Metoda retezeni Consumeru

22
Q

Dvě metody řetězení Funkcí a jejich rozdíl

A

f1.andThen(f2) - nejdriv jde f1
f1.compose(f2) - nejdriv jde f2

23
Q

Spliterator - co, kdy se používá, jak ho vyrobit

A

Obdoba iterátoru, má navíc split() a statistické charakteristiky, nepotřebuje hasNext() (efektivnejsi)
Vhodný pro paralelní zpracování
collection.spliterator

24
Q

Statistické vlastnosti Spliterator
Metoda + 6 vlastnosti

A

characteristics ()
SIZED, SUBSIZED
SORTED, ORDERED
DISTINCT
NONNULL
CONCURENT
IMMUTABLE

25
reduce() vs collect()
Oba berou dva prvky a dělají z něho jeden pomocí akumulátoru Collect ho navíc zabalí do kolekce
26
Metody vhodné pro paralelní zpracování, které vytvoří ze streamu list, set, map (3) Metoda vhodná pro sekvenční zpracování, která vytvoří ze streamu map
stream.collect(...); Collectors.toList Collectors.toSet Collectors.toConcurrentMap Collectors.toMap
27
Kdy je vhodné použít paralelní zpracování streamu
Velká sada vstupních dat Více CPU Zpracování náročné na CPU
28
Metody spliteratoru pro provedeni akce (2) metoda ziskani velikosti metoda na SORTED
tryAdvance() - boolean forEachRemaining() - jde od konce estimateSize() getComparator()
29
Metody pro provedeni map, flatMap a filter na streamu a ulozeni do kolekce
Collectors.mapping(fce, collector) Collectors.flatMapping(fce, collector) Collectors.filtering(fce, collector)
30
Metoda pro prevedeni streamu na kolekci a pak provedeni fce nad prvky
Collectors.collectAndThen(collector, fce)
31
Partition na streamu, jak se dela, co je vysledkem
Collectors.partitionBy(fce) vraci mapu, keys=true/false, values jsou seznamy podle toho, jestli splnuji fci
32
Grouping na streamu, jak se dela, co je vysledkem
Collectors.groupingBy(fce) vraci mapu, keys=hodnoty podle fce, values jsou seznamy podle keys
33
Jak seradim stream podle metody getName a getAge objektu?
stream.sorted(Comparator.comparing(MyClass::getName) .thenComparing(MyClass::getAge))
34
Jak ze streamu udelam csv line?
stream.collect(Collectors.joining(","));
35
Jak ze streamu udelam mapu? (2p) Jak jsou ulozene hodnoty?
stream.collect(Collectors.groupingBy(keyFce)) stream.collect(Collectors.groupingBy(keyFce, valueFce)) Jako ArrayList
36
Jak ze streamu udelam mapu, keys jsou true, false?
stream.collect(Collectors.partitioningBy(predicate));
37
Jak vytvorit z listu ordered stream?
Stream.iterate(list)
38
Jak ziskat nekonecny stream celych cisel
IntStream.generate(() -> Math.random * 10)
39
Rozdil mezi chovanim filter(x-> x<5) a takeWhile(x-> x<5)
Filter se chova vzdy stejne TakeWhile skonci pri prvnim nezdaru a ma na unordered streamu NESTABILNI VYSLEDKY!
40
Jak vytvorit stream ze suppliera?
Stream.generate(fce);
41
Predikat pro rovnost (metoda)
Predicate.isEqual(x, y)
42
Kolik se vytiskne znaku? Proc? Stream o 3 prvcich: stream.peek(sout(x)).findAny();
Jeden. Protoze short-circuit. Odzadu potrebuju jeden, tak ostatni nezpracovavam
43
Mam stream jen s intermediate operacemi. Co se stane?
Neprovedou se, bo tam neni terminalni operace (laziness)