You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

 

WeightProgram
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class WeightProgram {
	
	private Map<String,List<Double>> weightLogs = new HashMap<String,List<Double>>();
	
	public WeightProgram () {
		
		List<Double> log1 = new ArrayList<Double>();
		List<Double> log2 = new ArrayList<Double>();
		List<Double> log3 = new ArrayList<Double>();
		
		initializeLogs(log1, log2, log3);

		weightLogs.put("OlaNor", log1);
		weightLogs.put("PerSpe", log2);
		weightLogs.put("EspAsk", log3);
	}
	
	public String biggestLooser() {
		
		String looserName = "None";
		double highestLoss = Double.NEGATIVE_INFINITY;
		
		double initialWeight;
		double currentWeight;
		double prosentageWeightLoss;
		
		for (String userName : weightLogs.keySet()) {
			
			List<Double> log = weightLogs.get(userName);
			
			initialWeight = log.get(0);
			currentWeight = log.get(log.size()-1);
			
			prosentageWeightLoss = 100 - ((100/initialWeight)*currentWeight);
			
			if(prosentageWeightLoss > highestLoss) {
				looserName = userName;
				highestLoss = prosentageWeightLoss;
			}
		}
		return looserName;
	}
	
	private void initializeLogs(List<Double> log1, List<Double> log2, List<Double> log3) {
		log1.add(95.0);
		log1.add(93.1);
		log1.add(87.9);
		
		log2.add(123.0);
		log2.add(119.1);
		log2.add(115.9);
		
		log3.add(102.0);
		log3.add(100.1);
		log3.add(98.3);
	}
}

 

 

 

 

 

 

 









(8) Her brukes et HashMap til å organisere innveiingsloggene. HashMapet har
en String (deltakernavn) som nøkkel og en List som verdi. Deklarerer HashMapet som et Map, siden det ikke skal brukes noen HashMap-spesifikke metoder.
Merk at det egentlig ville vært mer naturlig med et personobjekt her som nøkkel i Mapet

(12) Med en ArrayList til å holde på innveiingene vil man enkelt kunne
hente vekt etter uketall siden listen er 0-indeksert. Bruker double siden listen skal støtte desimaltall. Deklarerer ArrayListen som en List, siden det ikke skal brukes noen ArrayList-spesifikke metoder.

(16) Metode for å gjøre koden kjørbar, og er ikke en del av oppgaveteksten.











(32) Bruker metoden keySet() som returnerer alle nøklene HashMapet har,
og traverserer disse. 

(34) Henter deretter en og en log med get()-metoden.

(36) Henter element på plass 0 fra ArrayList.
(37) Henter siste element fra ArrayList, (størrelsen - 1) pga 0-indeksert.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • No labels