Ciele
- Zoznámiť sa s možnosťami použitia funkcionálneho prístupu v jazyku Java.
Postup
Krok 1
Úloha 1.1
Stiahnite si projekt s kostrami úloh.
Trieda Products definuje vnorený typ record Product(String name, int value) reprezentujúci názvy a hodnoty produktov.
Úloha 1.2
Implementujte metódu Products.getValue() s použitím funkcionálneho prístupu. Táto funkcia dostane názov a zoznam produktov a ich hodnôt a má spočítať súčet hodnôt produktov so zadaným názvom. Úloha a je analogická úlohe z druhého cvičenia.
public static int getValue(String name, List<Product> products) { ... }
Poznámka
Pre všetky triedy sú už implementované jednotkové testy, ktoré môžete použiť pre overenie správnosti vášho riešenia.
Úloha 1.3
Implementujte funkciu Replacer.replace() s použitím funkcionálneho prístupu. Táto funkcia má realizovať nahradzovanie slov vo vete podľa zoznamu náhrad.
public static String replace(List<Replacement> replacements, String sentence) { ... }
Poznámka
Na rozdelenie reťazca na slová je možné použiť funkciu String.split(String), na spojenie — Collectors.joining(CharSequence)
Krok 2: Agregácia výsledkov
Úloha 2.1
Implementujte metódu ExamResults.getStatistics(), ktorá vypočíta štatistiky z výsledkov skúšky. Použite rôzne operácie na prúdoch.
record Statistics(double average, int passed, int failed, Optional<Integer> best) {}
public static Statistics getStatistics(List<Integer> scores) { ... }
Štatistiky majú obsahovať:
- Priemernú hodnotu (
average) - Počet úspešných (skóre ≥ 50) (
passed) - Počet neúspešných (
failed) - Najlepšie skóre ako
Optional(prázdne ak zoznam je prázdny) (best)
Krok 3: Histogram
Úloha 3.1
V tom istom projekte implementujte chýbajúce metódy v triede Histogram realizujúce vykresľovanie histogramu. Táto úloha je podobná úlohe z cvičenia 3.
Poznámka
Jednotlivé funkcie pracuje s riadkami uloženými v prúdoch. Až na koniec sú riadky z týchto prúdov pozbierané do výsledného reťazca.