簡體   English   中英

當我嘗試查找剛剛放入哈希圖中的值時,為什么會出現運行時異常?

[英]Why do I get a Runtime exception when I try to find values I just put in the hashmap?

有人可以向我解釋為什么以下代碼段引發運行時異常嗎?

int i = 0;
for ( ; i < TOTAL; i++ ) {
    String value = "" + i;
    int key = numbers[i];                
    map.put(key, value);
}

i = 0;
for ( ; i < TOTAL; i++ ) {
    String value = "" + i;
    int key = numbers[i];
    String valueInMap = map.get(key);
    if(valueInMap == null || !valueInMap.equals(value)) {
        throw new RuntimeException("Impossible!");
    }
}

這是整個程序,除了我用隨機數填充numbers[]的部分。

我指的是throw new RuntimeException("Impossible!"); 我得到這個例外

我用隨機數填充numbers[]

您會得到一個例外,因為並非在numbers[]中的TOTAL項中的所有值都是唯一的。 發生這種情況時,新值將覆蓋舊值,因此在第二個循環中,您將得到錯誤的結果。

為了確保永遠不會發生這種情況,請將TOTAL隨機值復制到HashSet<Integer>然后再將其復制到numbers[]數組中。

暫無
暫無

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

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