So habe ich diese hashmap „hm“ genannt, die die folgende Ausgabe erzeugt (ANMERKUNG: dies nur eine Auswahl ist):Wie berechnet man die Summe der Werte verschiedener Hashmaps mit dem gleichen Schlüssel?
{1=35, 2=52, 3=61, 4=68, 5=68, 6=70, 7=70, 8=70, 9=70, 10=72, 11=72}
{1=35, 2=52, 3=61, 4=68, 5=70, 6=70, 7=70, 8=68, 9=72, 10=72, 11=72}
{1=35, 2=52, 3=61, 4=68, 5=68, 6=70, 7=70, 8=70, 9=72, 10=72, 11=72}
Diese Ausgabe wurde mit dem folgenden Code (HINWEIS erstellt: der Rest der Klasse Code ist hier nicht) dargestellt:
private int scores;
HashMap<Integer,Integer> hm = new HashMap<>();
for (int i = 0; i < fileLines.length(); i++) {
char character = fileLines.charAt(i);
this.scores = character;
int position = i +1;
hm.put(position,this.scores);
}
System.out.println(hm);
Was ich zu tun versuchen, ist, all diese Hashmaps zusammen in einem hashmap mit als Wert der Summe der Werte pro Schlüssel. Ich kenne Pythons Standarddict, konnte aber kein äquivalentes Arbeitsbeispiel finden. Ich habe nach einer Antwort gesucht und die Antworten unten getroffen, aber sie lösen mein Problem nicht.
How to calculate a value for each key of a HashMap?
what java collection that provides multiple values for the same key
is there a Java equivalent of Python's defaultdict?
Die gewünschte Ausgabe wäre:
{1=105, 2=156, 3=183 , 4=204 ,5=206 ..... and so on}
Schließlich wird die durchschnittliche pro Position (Schlüssel) berechnet werden muss, aber das ist ein Problem, das ich Ich denke, ich kann mich selbständig machen, wenn ich weiß, wie ich das oben tun soll.
EDIT: Der reale Ausgang ist viel viel größer! Denken Sie an mehr als 100 Hashmaps mit mehr als 100 Schlüsseln.
zurückzukehren Was Sie von Iterieren über die Einträge aller 3 HashMaps stoppt und für jede Taste die Werte summiert? – Eran
Wenn Sie wissen, die Tasten sind 1 bis 11, nur 'for' Schleife und Summe mit' get() '. Wenn Sie die Schlüssel nicht kennen, aber wissen, dass alle Karten die gleichen Schlüssel haben, iterieren Sie einfach die Schlüssel aus einer von ihnen und summieren Sie mit 'get()'. – Andreas
Vielen Dank, ich werde Ihren Vorschlag versuchen! – user3309936