Hashmap Holen gibt null zurück

Habe ich zwei Hashmaps

HashMap<Integer, Integer> inventoryRequirements = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> inventory = new HashMap<Integer, Integer>();

Ich habe eine Schleife, die überprüft, aktuelle und fügt hinzu:

for(Item item : items){
    int currentRequirement = 0;
    currentRequirement = inventoryRequirements.get(item.get_id());
    inventoryRequirements.put(item.get_id(), currentRequirement++);         
}

Habe ich noch eine Schleife, die überprüft, Inventar und fügt hinzu:

for(Item item : items){
    int currentInventory = 0;
    //this next line returns null
    currentInventory = inventory.get(item.get_id());
    inventory.put(item.get_id(), currentInventory++);           
}

Die erste funktioniert einwandfrei, aber die zweite kotzt und eine null zurück. Ich verstehe nicht, warum die zweite nicht funktioniert. Beide sind zunächst in den gleichen Zustand, wie dargestellt in der code sample.

BEARBEITEN

Den beiden HM bekommen bevölkert, wie Sie hier sehen - wirklich!!!! Ich weiß, es ist schwer zu glauben, aber die erste funktioniert und die zweite nicht.

Haben Sie jemals put alles in inventory? Auch, warum nicht Map<Item, Integer>s?
Wenn inventoryRequirements beginnt leer, der erste loop wird auch scheitern.
Es wird nie auf die Linie zu setzen alles in es. Warum nicht die Karte statt - ich habe keine gute Antwort für diese - ist es ein echter Vorteil?
Jeder Aufruf get(int) auf eine leere HashMap zurück null.
Weil Sie haben offensichtlich andere code zwischen der ersten und zweiten snippet, das Sie sich nicht uns zu zeigen.

InformationsquelleAutor Roy Hinkley | 2013-07-02

Schreibe einen Kommentar