Hallo,
Ich habe Items, die ich gerne einer HashMap hinzufügen würde mit dem Item als Key und der Anzahl als Value. Falls ein Item öfter vorkommt soll die Anzahl um die neue Anzahl erhöht werden. Um es euch zu verdeutlichen ist hier mein Code:
Ich bekomme leider nur {} als Output. Am Ende sollen die Items mit Ihrer Anzahl erscheinen, Foo soll dabei mit 5 (nämlich 2 vom alten + 3 vom neuen Hinzufügen) ausgegeben werden.
Wo habe ich meinen Denkfehler?
Ich habe Items, die ich gerne einer HashMap hinzufügen würde mit dem Item als Key und der Anzahl als Value. Falls ein Item öfter vorkommt soll die Anzahl um die neue Anzahl erhöht werden. Um es euch zu verdeutlichen ist hier mein Code:
Java:
import java.util.*;
public class Playground {
private static HashMap<Item, Integer> produktMap = new HashMap<>();
public static void main(String[] args) {
Item i1 = new Item("Foo");
Item i2 = new Item("Bar");
Item i3 = new Item("Baz");
Item i4 = new Item("Foo");
addEntryToHashMap(i1,2);
addEntryToHashMap(i2,3);
addEntryToHashMap(i3,1);
addEntryToHashMap(i4,3);
System.out.println(produktMap);
}
public static void addEntryToHashMap(Item i, int anzahl) {
for (HashMap.Entry<Item, Integer> entry : produktMap.entrySet()) {
if (produktMap.containsKey(i)) {
entry.setValue(entry.getValue() + anzahl);
} else {
produktMap.put(i, anzahl);
}
}
}
}
Ich bekomme leider nur {} als Output. Am Ende sollen die Items mit Ihrer Anzahl erscheinen, Foo soll dabei mit 5 (nämlich 2 vom alten + 3 vom neuen Hinzufügen) ausgegeben werden.
Wo habe ich meinen Denkfehler?