Denne oppgaven hander om hvordan en kan bruke det funksjonelle Predicate<T> - grensesnittet, sammen med CardDeck-klassen.

Vi tar i denne oppgaven utgangspunkt i CardDeck-klassen fra Innkapsling - Card-oppgave. Et CardDeck-objekt har en liste med Card-objekter. Card har en kortfarge (av typen char) og verdi (int), og vi ønsker å lage metoder i CardDeck som søker opp Card-objekter som tilfredsstiller visse kriterier, f.eks. sjekker om spar dame finnes, teller antall hjerter eller henter ut alle ess. For å representere selve kriteriet brukes Predicate<T>-grensesnittet, som handler om å teste/sjekke om et objekt tilfredsstiller visse kriterium.

Implementer følgende metoder i CardDeck-Klassen. 

  • boolean hasCard(Predicate<Card> predicate) - Skal returnere true dersom det finnes et kort som tilfredsstiller predicatefalse ellers. 
  • int getCardCount(Predicate<Card> predicate) -  Skal returnere hvor mange kort som tilfredsstiller predicate
  • List<Card> getCards(Predicate<Card> predicate) - Skal returnere en liste med de kortene som tilfredsstiller predicate

Lag også din egen main-metode hvor du prøver hver av de tre metodene over. Du skal altså sjekke om spar dame finnes, telle antall hjerter og hente ut alle ess.

Hvordan en kan opprette funksjonelle grensesnitt kan du se på wikisiden om dette. 

Hjelp / mistanke om bugs

Ved spørsmål eller behov for hjelp konsulter studassen din i saltiden hans / hennes. Du kan også oppsøke andre studasser på sal eller legge ut et innlegg på Piazza.

Godkjenning

Last opp kildekode og .ex-filene på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for stud.ass innen én uke etter innleveringsfrist. Se for øvrig Blackboard-sidene for informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet.

Exercise-panelet

For hver oppgave finnes det en tilsvarende .ex-fil, som beskriver hvilke aktiviteter, f.eks. koderedigering, kjøring av tester osv, som er en del av oppgaven. Når en jobber med en oppgave, så kan en åpne .ex-fila for oppgaven i Exercise-panelet. Dette gjøres enten ved å høyreklikke på fila og velge Exercise > Open Exercise View eller å åpne panelet med Window > Show View > Other... > Exercise View og så dra og slippe .ex-fila i panelet. Filen ligger i mappen tests, og videre i pakke med samme navn som klassen den hører til. Hver .ex-fil åpnes i en egen fane, så en kan jobbe med flere oppgaver samtidig. 
Disse .ex-filene, én for hver oppgave,  leveres inn sammen med kildekoden i øvinger hvor det er spesifisert.