Halloj!
Nu har vi precis börjat med arrayList och problemen strömmar på efter varandra.
Labben som vi ska göra e att ta ut 3 värden (namn, vikt, langd) från en extern fil och beräkna medelBMI för de personer som finns i filen. Filen består då utav 3 string splittad med " ; ".
Programmet e indelad i 3 klasser, Lab, Fil och Persondata. Main befinner sig i Lab då. Metoden som räknar ut medelBMI befinner sig Lab.
Problemet jag har är i metoden medelBMI, eftersom alla värden från filen hamnar i en arrayList så vet jag inte hur jag ska ta ut de två variablerna vikt och langd (som blir deklarerade och typkonverterade i persondata klassen) för att sedan ta ut ett medelvärde på var och en...
Koden:
----------------------------------------
//Statiska metoden calcAverageBMI med datatypen double
static double calcAverageBMI(ArrayList individer) {
for (int i = 0; i < individer.size(); i++) {
Individ p = individer.get*;
p.langd;
p.vikt;
}
return vikt / (langd*langd);
}
----------------------------------------
//Persondata-klassen
class Individ {
private String namn;
private double langd;
private int vikt;
Luftigare än nödvändigt för att tydliggöra. Vikt och längd görs om till double så vi får med decimaler också... sen är det bara att iterera över din lista och räkna ut medlet. Kör ni Java 1.5 med generics ser det ut så här:
ArrayList<Individ> individuals = ...;
double sumBMI = 0;
for (Individ i : individuals)
sumBMI += i.getBMI(); // räkna samman BMI för alla i listan
double averageBMI = sumBMI / personer.size();
Kör ni gamla Java är det bökigare, men i princip samma sak:
ArrayList individuals = ...;
double sumBMI = 0;
for (Iterator iter = individuals.iterator(); iter.hasNext();){
Individ ind = (Individ) iter.next();
sumBMI += ind.getBMI();
}
double averageBMI = sumBMI / personer.size();
Tack för svaret spango!
Det blev rätt avancerat i slutet tyckte jag. Men jag ska ta o prova med enskilt BMI-värde i metoden Individ. På så sätt kan jag kanske ta o allas BMI-värde och på så sätt räkna ut medeln genom att dividera summan av BMI'n med vektorns size() :) kan funka.
263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25