Gegeven is een lijst met diagnoses van verscheidene dokters voor meerdere patiënten over een bepaalde periode. Elke diagnose vermeldt de ziekte (bv. griep, oorontsteking, enz.) en de dag waarop de diagnose gesteld is. Dagen worden eenvoudigweg genummerd (vanaf nul) t.o.v. een bepaalde referentiedag, bijvoorbeeld het begin van het jaar. De volgorde waarin de diagnoses opgelijst staan, is arbitrair.

Gevraagd wordt om na te gaan of er in de gegeven periode een epidemie van een bepaalde ziekte opgetreden is. We spreken van een epidemie als gedurende een periode van \(k\) opeenvolgende dagen meer dan \(n\) diagnoses per dag van dezelfde ziekte voorkomen. De waarden van \(k\) en \(n\) worden als parameter meegegeven.

Implementeer de interface EpidemicFinder1 in een klasse MyEpidemicFinder. De gevraagde methode public Collection<String> findEpidemics(List<Diagnosis> diagnoses, int k, int n) geeft de collectie terug van alle ziektes waarvan een epidemie werd vastgesteld. Hierbij wordt de gegeven klasse Diagnosis2 gebruikt om een diagnose voor te stellen van een bepaalde ziekte (klasse Disease3).

Je mag zelf kiezen welk type collectie je teruggeeft. Denk er vooral goed over na welke collectie(s) je intern in je algoritme kan gebruiken om de zoektocht naar epidemieën efficiënt te maken.

Gebruik eventueel de testklasse SimpleTest4 om je oplossing lokaal te testen. Je kan hierin eenvoudig extra testgevallen toevoegen.