Ich versuche, über ein HashMap
mit der keySet()
Methode Schleife wie folgt:keySet Feld in HashMap null ist
for (String key : bundle.keySet()) {
String value = bundle.get(key);
...
}
Ich benutze eine Menge von für-jeden-Schleife auf HashMaps in anderen Teilen meines Codes, aber dieses als ein seltsames Verhalten: seine Größe ist 7 (was ist normal) aber keySet
, entrySet
und values
sind null
(nach dem Eclipse-Debugger)!
Das "Bündel" Variable instanziiert und bevölkert wie folgt (nichts original ...):
Map <String, String> privVar;
Constructor(){
privVar = new HashMap<String, String>();
}
public void add(String key, String value) {
this.privVar.put(key, value);
}
Wenn Sie viele for-each Loops auf HashMaps machen, denke ich, dass Sie vielleicht Ihre Struktur ändern möchten. – Macarse
Ich stimme @Macarse zu. Außerdem: * Wenn * Sie eine "Map" durchlaufen möchten und sowohl die Schlüssel als auch die Werte benötigen, ist es normalerweise viel besser, das 'entrySet()' zu durchlaufen, um unnötige Suchen für jede Taste zu vermeiden. –
Danke für deinen Vorschlag Joachim, ich werde das tun. @Macarse: Ich lege Werte in meine Maps ein, die aus Dateien extrahiert wurden (Excel-Tabelle), um eine Reihe von syntaktischen Regeln anzuwenden (regExp-Checks), bevor eine neue Tabelle erstellt wird. Denkst du, Karten sind kein gutes Objekt, um dies zu speichern? –