I am trying to loop over a HashMap
with the keySet()
method as below:
for (String key : bundle.keySet()) {
String value = bundle.get(key);
...
}
I use a lot of for-each loops on HashMaps in other parts of my code, but this one as a weird behavior: its size is 7 (what's normal) but keySet
, entrySet
and values
are null
(according to the Eclipse debugger)!
The "bundle" variable is instantiated and populated as follows (nothing original...):
Map <String, String> privVar;
Constructor(){
privVar = new HashMap<String, String>();
}
public void add(String key, String value) {
this.privVar.put(key, value);
}
What do you mean by keySet
, entrySet
and values
? If you mean the internal fields of HashMap
, then you should not look at them and need not care about them. They are used for caching.
For example in the Java 6 VM that I use keySet()
is implemented like this:
public Set<K> keySet() {
Set<K> ks = keySet;
return (ks != null ? ks : (keySet = new KeySet()));
}
So the fact that keySet
is null
is irrelevant. keySet()
(the method) will never return null
.
The same is true for entrySet()
and values()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With