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

Compare with Current View Page History

« Previous Version 10 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.

 

 

(28) Bruker metoden keySet() som returnerer alle nøklene HashMapet har,
og traverserer disse. 
(30) Henter deretter en og en log med get()-metoden.

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

  • No labels