Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

 

Code Block
languagejava
titleWeightProgram
linenumberstrue
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);
	}
	
	         
        initializeLogs(weightLogs);
    }
     
    public String biggestLooser() {
		
		         
        String looserName = "None"null;
		        double highestLoss = Double.NEGATIVE_INFINITY;
		
		double initialWeight;
		double currentWeight;
		double prosentageWeightLoss;
		
		for (String userName         
        for (Map.Entry<String, List<Double>> entry : weightLogs.keySetentrySet()) {
			
			             
            List<Double> log = weightLogsentry.getgetValue(userName);
			
			             
            double initialWeight = log.get(0);
			            double currentWeight = log.get(log.size()-1);
			
			             
            double prosentageWeightLoss = 100 - ((100/initialWeight)*currentWeight);
			
			             
            if(prosentageWeightLoss > highestLoss) {
				                looserName = userName;
				entry.getKey();
                highestLoss = prosentageWeightLoss;
			}
		}
		            }
        }
        return looserName;
	    }
	
	     
    private void initializeLogs(Map<String,List<Double>> map) {
    	List<Double> log1,  = new ArrayList<Double>();
    	List<Double> log2,  = new ArrayList<Double>();
    	List<Double> log3 = new ArrayList<Double>() {
	;
        
    	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);

        weightLogs.put("OlaNor", log1);
        weightLogs.put("PerSpe", log2);
        weightLogs.put("EspAsk", log3);
	    }
}

 

 

 

 

 

 

 









(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 å opprette lister og gjøre koden kjørbar, og er ikke eksplisitt en del av oppgaveteksten.



(
2820) Bruker metoden keySetentrySet() som returnerer alle nøklene parene med nøkkel og verdi HashMapet har,
og traverserer disse. 

(3022) Henter deretter en og en log med getgetValue()-metoden.

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

 

 

 

(38) 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.

(42) Benytter List-metoden add, for å legge til elementer på slutten av listen

 

 

 


(54) Benytter Map-metoden put, for å mappe et nytt sett av nøkel og verdi.