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

A

x

20
Q

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

A

and, or
negate, P.not(p)

21
Q

Metoda retezeni Consumeru

A

andThen()

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
Q

reduce() vs collect()

A

Oba berou dva prvky a dělají z něho jeden pomocí akumulátoru
Collect ho navíc zabalí do kolekce

26
Q

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

A

stream.collect(…);
Collectors.toList
Collectors.toSet
Collectors.toConcurrentMap

Collectors.toMap

27
Q

Kdy je vhodné použít paralelní zpracování streamu

A

Velká sada vstupních dat
Více CPU
Zpracování náročné na CPU

28
Q

Metody spliteratoru pro provedeni akce (2)
metoda ziskani velikosti
metoda na SORTED

A

tryAdvance() - boolean
forEachRemaining() - jde od konce

estimateSize()

getComparator()

29
Q

Metody pro provedeni map, flatMap a filter na streamu a ulozeni do kolekce

A

Collectors.mapping(fce, collector)
Collectors.flatMapping(fce, collector)
Collectors.filtering(fce, collector)

30
Q

Metoda pro prevedeni streamu na kolekci a pak provedeni fce nad prvky

A

Collectors.collectAndThen(collector, fce)

31
Q

Partition na streamu, jak se dela, co je vysledkem

A

Collectors.partitionBy(fce)
vraci mapu, keys=true/false, values jsou seznamy podle toho, jestli splnuji fci

32
Q

Grouping na streamu, jak se dela, co je vysledkem

A

Collectors.groupingBy(fce)
vraci mapu, keys=hodnoty podle fce, values jsou seznamy podle keys

33
Q

Jak seradim stream podle metody getName a getAge objektu?

A

stream.sorted(Comparator.comparing(MyClass::getName)
.thenComparing(MyClass::getAge))

34
Q

Jak ze streamu udelam csv line?

A

stream.collect(Collectors.joining(“,”));

35
Q

Jak ze streamu udelam mapu? (2p)
Jak jsou ulozene hodnoty?

A

stream.collect(Collectors.groupingBy(keyFce))
stream.collect(Collectors.groupingBy(keyFce, valueFce))

Jako ArrayList

36
Q

Jak ze streamu udelam mapu, keys jsou true, false?

A

stream.collect(Collectors.partitioningBy(predicate));

37
Q

Jak vytvorit z listu ordered stream?

A

Stream.iterate(list)

38
Q

Jak ziskat nekonecny stream celych cisel

A

IntStream.generate(() -> Math.random * 10)

39
Q

Rozdil mezi chovanim filter(x-> x<5) a takeWhile(x-> x<5)

A

Filter se chova vzdy stejne
TakeWhile skonci pri prvnim nezdaru a ma na unordered streamu NESTABILNI VYSLEDKY!

40
Q

Jak vytvorit stream ze suppliera?

A

Stream.generate(fce);

41
Q

Predikat pro rovnost (metoda)

A

Predicate.isEqual(x, y)

42
Q

Kolik se vytiskne znaku? Proc?
Stream o 3 prvcich:
stream.peek(sout(x)).findAny();

A

Jeden.
Protoze short-circuit. Odzadu potrebuju jeden, tak ostatni nezpracovavam

43
Q

Mam stream jen s intermediate operacemi. Co se stane?

A

Neprovedou se, bo tam neni terminalni operace (laziness)