Denne oppgaven handler om å bruke streaming-teknikken i Collection-rammeverket for å filtrere ut uønskede elementer.

I mange sammenhenger har vi en samling av objekter, hvor vi kun ønsker å utføre en operasjon på en delmengde av objektene, eller å få tak i informasjon fra samlingen. Hvilke objekter vi ønsker å utføre en operasjon på kan variere, det kan være flere ulike kriterier som må være oppfylt. I noen tilfeller kan vi også ønske å få tak i informasjon som f.eks. hvor mange objekter som oppfyller et gitt kriterie, hva summen av en egenskap til objektene er eller liknenede. 

I denne oppgaven vil man få utdelt en klasse som opprettet en Collection, og fyller den med objekter av typen Person

Person-klassen forestiller en person, og inneholder naturlige felter og metoder. Person er en såkalt verdiklasse, som kodes slik at objektene ikke kan endres etter at de er opprettet. En person har en alder, et navn og en hobbyFølgende metoder er implementert:

  • Card(String, int, String) - konstruktøren initialiserer henholdsvis navn, alder og hobby. Om ikke argumentene oppfyller kravene under utløses en IllegalArgumentException.
  • getName() - returnerer navnet til personen. Et navn består kun av bokstaver og mellomrom, og første bokstav i hvert ord er en stor bokstav.
  • getAge() - returnerer alderen til personen. Alderen må være et positivt heltall (alder > 0)
  • getHobby() - returnerer hobbyen til personen. Hobbyen må være et enkelt ord som består av kun små bokstaver.
  • toString() - returnerer en streng som består av "<Navn> er <Alder> år gammel, og liker <Hobby>

TODO: Øvingen er under konstruksjon. 


JExercise lar deg sjekke din egen kode vha. forhåndslagde JUnit-tester og JExercise-panelet

Bruk av JExercise:

  1. Sørg for at jexercise-standalone.jar er lagt til i ditt prosjekts Build Path. Dette må gjøres hver gang du oppretter et nytt prosjekt, og det er derfor lurt å gjenbruke samme prosjekt til alle oppgaver.
  2. JExercise-tillegget må være installert. Installer tillegget fra følgende oppdateringsadresse: http://folk.ntnu.no/hal/dev/updatesite.
  3. Åpne JExercise-panelet via Window -> Show View -> Other, og navigere deg fram til JExercise i vinduet som kommer opp, velge det og klikke OK.
  4. Klikke og dra oppgavens testklasse, <oppgavenavn>Test.java fra pakkeoversikten og slippe den i JExercise panelet. 
  5. Testene kan så kjøres ved å dobbeltklikke på testen som ønskes kjørt.

Ved trøbbel, se først om du finner løsningen i Løsninger på trøbbel med JExercise.

Unknown macro: {html}

Twitre gjerne om oppgaven når du er ferdig: <a href="https://twitter.com/share" class="twitter-share-button" data-hashtags="jexercise">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>

  • No labels