Sto cercando di loop su un HashMap
con il metodo keySet()
come di seguito:campo keySet in HashMap è nullo
for (String key : bundle.keySet()) {
String value = bundle.get(key);
...
}
io uso un sacco di for-each loop sul HashMaps in altre parti del mio codice, ma questo come un comportamento strano: le sue dimensioni sono 7 (ciò che è normale), ma keySet
, entrySet
e values
sono null
(secondo il debugger Eclipse)!
La variabile "pacco" viene istanziato e popolato come segue (nulla di originale ...):
Map <String, String> privVar;
Constructor(){
privVar = new HashMap<String, String>();
}
public void add(String key, String value) {
this.privVar.put(key, value);
}
Se stai facendo un sacco di for-each loop sul HashMaps Penso che si potrebbe desiderare cambiare la vostra struttura. – Macarse
Sono d'accordo con @Macarse. Inoltre: * se * si desidera eseguire il looping su una 'Map' e sono necessarie sia le chiavi che i valori, in genere è molto meglio eseguire il looping di' entrySet() 'per evitare ricerche non necessarie per ogni chiave. –
Grazie per il tuo suggerimento Joachim, lo farò. @Macarse: ho inserito valori nelle coppie di valori-chiave delle mie mappe estratti da file (foglio di calcolo Excel) per applicare un insieme di regole sintattiche (controlli regExp) prima di creare un nuovo foglio di calcolo. Pensi che le mappe non siano un buon oggetto per archiviare questo? –