簡體   English   中英

HashMap中的keySet字段為null

[英]keySet field in HashMap is null

我試圖用keySet()方法循環一個HashMap ,如下所示:

for (String key : bundle.keySet()) {
    String value = bundle.get(key);
    ...
}

我在代碼的其他部分使用HashMaps上的很多for-each循環,但是這個是一個奇怪的行為:它的大小是7(這是正常的)但是keySetentrySetvaluesnull (根據Eclipse調試器)!

“bundle”變量被實例化並填充如下(沒有原始...):

Map <String, String> privVar;
Constructor(){
    privVar = new HashMap<String, String>();
}
public void add(String key, String value) {
    this.privVar.put(key, value);
}

keySetentrySetvalues是什么意思? 如果你的意思是HashMap的內部字段,那么你不應該看它們而不必關心它們。 它們用於緩存。

例如,在Java 6 VM中,我使用keySet()實現如下:

public Set<K> keySet() {
    Set<K> ks = keySet;
    return (ks != null ? ks : (keySet = new KeySet()));
}

所以keySetnull的事實是無關緊要的。 keySet() (方法)永遠不會返回null

entrySet()values()也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM