Was ist der beste Weg, um über die Elemente in einer HashMap
?
Dies hängt tatsächlich davon ab, ob Sie die Schlüssel benötigen oder nicht. Wenn nicht, ist es effizienter, entrySet() zu verwenden, da hashCode() nicht aufgerufen wird.
Was ist der beste Weg, um über die Elemente in einer HashMap
?
Dies hängt tatsächlich davon ab, ob Sie die Schlüssel benötigen oder nicht. Wenn nicht, ist es effizienter, entrySet() zu verwenden, da hashCode() nicht aufgerufen wird.
Map.entrySet(), die Einträge zurückgibt, die bereits sowohl den Schlüssel als auch den Wert enthalten. Auf diese Weise müssen Sie nicht hashCode() aufrufen und den Hash während der Iteration durchsuchen.
Kommt drauf an. Wenn Sie wissen, dass Sie sowohl den Schlüssel als auch den Wert eines jeden Eintrags benötigen, dann gehen Sie durch die entrySet
. Wenn Sie nur die Werte benötigen, dann gibt es die values()
Methode. Und wenn Sie nur die Schlüssel benötigen, dann verwenden Sie keyset()
.
Eine schlechte Praxis wäre es, durch alle Schlüssel zu iterieren und dann innerhalb der Schleife immer map.get(key)
um den Wert zu erhalten. Wenn Sie das tun, dann ist die erste Option, die ich schrieb, für Sie.
Ein weiterer wichtiger Punkt: Das von keySet() zurückgegebene Set und die von values() zurückgegebene Collection werden beide von der ursprünglichen Map unterstützt. Das heißt, wenn Sie eine Änderung in ihnen vornehmen, werden sie in der Map zurückgespiegelt. Allerdings unterstützen beide keine add()- und addAll()-Methoden, d.h. Sie können keinen neuen Schlüssel zum Set oder einen neuen Wert in der Collection hinzufügen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
7 Stimmen
Ich muss die Schlüssel und Werte abrufen und sie zu einem mehrdimensionalen Array hinzufügen
8 Stimmen
In Java 8 mit Lambda-Ausdruck : stackoverflow.com/a/25616206/1503859