Avatar billede drinkit Praktikant
19. februar 2014 - 14:58 Der er 6 kommentarer og
1 løsning

Hashmaps i Java - Fag som key, karakter som value?

Hej. Jeg er ved at lære Java, og har fået stillet en opgave der lyder således:

"In Student class, add data members to store all the grades for all the courses taken by a student. Also implement a method float averageNote() that returns the average grade over all courses taken by a student"

Tænker jeg skal bruge hashmaps til at koble de individuelle karakterer til et fag - men hvordan gør jeg det? Har jeg ikke brugt før. Mener hashmaps bruger en key (kunne være faget) og så har det en value (karakteren?). Jeg opretter objekter af typen "Student", som så skal have et hashmap til fag og karakterer, som instance data, går jeg ud fra? .. Hvordan ville I løse det her spørgsmål?

På forhånd tak for jeres tid.
Avatar billede arne_v Ekspert
19. februar 2014 - 15:04 #1
...
public class Student {
    ...
    private HashMap<String,Integer> grades;
    ...
}

er absolut en mulighed.
Avatar billede drinkit Praktikant
19. februar 2014 - 16:36 #2
perfekt arne - men hvis der skal være flere fag og flere karakterer per objekt, hvordan gør jeg så det?
Avatar billede arne_v Ekspert
19. februar 2014 - 16:51 #3
Du kan netop gemme flere fag og karakterer i en HashMap<String,Integer>
Avatar billede drinkit Praktikant
19. februar 2014 - 17:35 #4
Fik det til at virke. Dejlig simpelt faktisk, med put og get.

En sidste ting, hvis du gider.

Hvordan finder jeg så gennemsnittet af alle values i mit hashmap grades? Der står i spørgsmålet at jeg skal anvende "float averageNote()" ?

Mvh.
Avatar billede arne_v Ekspert
19. februar 2014 - 18:09 #5
Du itererer gennem HashMap og summerer og taeller (og dividerer saa sum med antal til sidst).

F.eks. via .keyset().iterator()
Avatar billede drinkit Praktikant
19. februar 2014 - 18:18 #6
Tak Arne, smid et svar så jeg kan lukke :)
Avatar billede arne_v Ekspert
19. februar 2014 - 19:16 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester