Estoy tratando de bucle sobre un HashMap
con el método keySet()
de la siguiente manera:campo de conjunto de claves en HashMap es nulo
for (String key : bundle.keySet()) {
String value = bundle.get(key);
...
}
que utilizan una gran cantidad de fines de cada bucles en HashMaps en otras partes de mi código, pero este como un comportamiento extraño: su tamaño es 7 (lo que es normal) pero keySet
, entrySet
y values
son null
(según el depurador Eclipse)!
El "paquete" variable se crea una instancia y se llena de la siguiente manera (nada original ...):
Map <String, String> privVar;
Constructor(){
privVar = new HashMap<String, String>();
}
public void add(String key, String value) {
this.privVar.put(key, value);
}
Si está haciendo muchas cosas para cada uno de los bucles en HashMaps, creo que es posible que desee cambiar su estructura. – Macarse
Estoy de acuerdo con @Macarse. Además: * si * desea hacer un bucle sobre un 'Mapa' y necesita tanto las claves como los valores, generalmente es mucho mejor pasar por encima de 'entrySet()' para evitar búsquedas innecesarias para cada tecla. –
Gracias por su sugerencia, Joachim, lo haré. @Macarse: Puse valores en parejas de valores-clave de mapas extraídos de archivos (hoja de cálculo de Excel) para aplicar un conjunto de reglas sintácticas (comprobaciones regExp) antes de crear una nueva hoja de cálculo. ¿Crees que los mapas no son un buen objeto para almacenar esto? –