===== Grupa D ===== Kolokwium - Programowanie Zaawansowane 17.01.2022 ==== Zadanie 1 CountIf ==== Napisz program, który wypełnia tablicę int[] liczącą około 100mln elementów losowym wartościami z zakresu [0,1000], a następnie sprawdzi, ile razy jest spełniają one predykat [[https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html|Predicate]] === a) sequentialCount() === *Zaimplementują wątek ''CountIfThread''. W konstruktorze przekaż predykat i zakres indeksów elementów tablicy do sprawdzenia *W wywołaniu przekaż mu takie wartości indeksów, aby sprawdził on całą tablicę *Podaj czas wykonania a) parallelCount(int cnt) *Zaimplementuj funkcję, której parametrem jest liczba wątków cnt. Uruchom cnt wątków przydzielając każdemu fragment tablicy. *Do agregacji danych użyj kolejki b) Przetestuj i podaj czasy *Przetestuj przekazując wyrażenie lambda, np. sprawdzające, czy element ma wartość <100 *Sprawdź, czy wyniki są prawdopodobne (około 10%) *Porównaj czasy działania dla różnych wartości parametru cnt ==== Zadanie 1 ==== W pliku {{:po:ibuk_wykaz_pozycji.csv|ibuk_wykaz_pozycji.csv}} znajduje się znaleziony w sieci spis książek jakiejś biblioteki. Zadeklaruj klasę Book z odpowiednimi polami, która będzie przechowywała dane poszczególnych książek. Wczytaj dane z pliku do pamięci a) Wypisz wszystkie książki, których autorem lub współautorem był mężczyzna o imieniu Marek. Wypisując informacje o książce podaj co najmniej: autora, tytuł, wydawnictwo i rok wydania b) Wypisz wszystkie książki wydane przez Wydawnictwo Naukowe PWN z kategorii Informatyka posortowane według roku wydania c) Podaj ile książek wydano w kolejnych latach (policz książki z kolejnych lat i wypisz) d) Podaj ile książek zostało wydane przez poszczególne wydawnictwa