Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Code Block
themeEclipse
languagejava
titleWeightProgram
linenumberstrue
import java.util.ArrayList;
import java.util.HashMap;
 
public class WeightProgram {
	
	private HashMap<String,ArrayList<Double>> weightLogs = new HashMap<String,ArrayList<Double>>();
	
	public WeightProgram () {
		
		ArrayList<Double> log1 = new ArrayList<Double>();
		ArrayList<Double> log2 = new ArrayList<Double>();
		ArrayList<Double> log3 = new ArrayList<Double>();
		
		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()) {
			
			ArrayList<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;
	}
}

 

 

 

 

 

 

Her brukes et HashMap til å organisere innveiingsloggene. HashMapet
har en String (deltakernavn) som nøkkel og en ArrayList som verdi.


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. 

 

 

 

 

 

 

 

 

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

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