![](/img/trans.png)
[英]HashMap's KeySet, EntrySet, and values are null while table is not empty
[英]keySet field in HashMap is null
我試圖用keySet()
方法循環一個HashMap
,如下所示:
for (String key : bundle.keySet()) {
String value = bundle.get(key);
...
}
我在代碼的其他部分使用HashMaps上的很多for-each循環,但是這個是一個奇怪的行為:它的大小是7(這是正常的)但是keySet
, entrySet
和values
是null
(根據Eclipse調試器)!
“bundle”變量被實例化並填充如下(沒有原始...):
Map <String, String> privVar;
Constructor(){
privVar = new HashMap<String, String>();
}
public void add(String key, String value) {
this.privVar.put(key, value);
}
keySet
, entrySet
和values
是什么意思? 如果你的意思是HashMap
的內部字段,那么你不應該看它們而不必關心它們。 它們用於緩存。
例如,在Java 6 VM中,我使用keySet()
實現如下:
public Set<K> keySet() {
Set<K> ks = keySet;
return (ks != null ? ks : (keySet = new KeySet()));
}
所以keySet
為null
的事實是無關緊要的。 keySet()
(方法)永遠不會返回null
。
entrySet()
和values()
也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.