Ein bisschen ein Anfänger mit Programmierung, also ertragen Sie mit mir.HashMap/ArrayList Mittelungsprogramm
Ich habe eine ArrayList innerhalb einer HashMap erstellt, so dass alle meine Werte zu einer Summe addiert werden können, so dass ich dann die Summe durch die Anzahl der Einträge in die ArrayList teilen kann, was mir meinen Durchschnitt geben würde ... das funktioniert alles gut AUSSER:
Mein erster Eintrag in meine ArrayList kommt immer wieder als 0,0 zurück, auch wenn ich in der GUI wie 45 eingeben oder was auch immer. Wie kann ich es ändern, so dass meine ArrayList 0 auf meinem ersten Eintrag setzt? Da ich ein Mittelungsprogramm erstellt habe, das funktionieren würde, wenn mein erster ArrayList-Eintrag den richtigen Eintrag abruft, wie es der 0 entgegengesetzt ist, wird sie jedes Mal zurückgebracht.
Hier ist mein Code:
public void addModRes(String mod, Integer res) {
ArrayList<Integer> nums = myMap.get(mod);
if (nums == null) {
nums = new ArrayList<Integer>();
}
double sum = 0;
double test =0;
double avg =0;
for (Integer number : nums) {
sum += number;
}
//except sum is missing out the first entry in the ArrayList
System.out.println("The Sum of all the numbers in the array is " + sum);
nums.add(res);
myMap.put(mod, nums);
test = nums.size();
//System.out.println("This is the size of the array list "+
numbers.size());
avg = sum/test;
System.out.println("this is the average: "+ average);
}
'avg = test/sum;' - Sie haben es rückwärts. Es sollte 'avg = sum/test;' – Eran
sollte es nicht 'nums.add (res);' statt 'numbers.add (res);' sein. Außerdem glaube ich nicht, dass Sie 'myMap.put (mod, nums);' benötigen, da Sie direkt an nums arbeiten und es bereits in myMap enthalten ist. – SaiBot
Willkommen bei Stack Overflow! Fragen, die Debugging-Hilfe suchen ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines [mcve]. Nutze den Link [Bearbeiten], um deine * Frage * zu verbessern - füge keine weiteren Informationen über Kommentare hinzu. Vielen Dank! – GhostCat