我對HashMaps有疑問。我們正在編寫一個small-c(-ish)編譯器,爲此我們使用了一個符號表。我們正在使用hashmap來實現這一點。Java HashMap重複存儲桶條目
現在考慮範圍我們使用堆棧。所以每次我們進入一個新的作用域時,我們都會在堆棧上推送一個表示這個標記的標記。然後,我們將hashmap中的所有密鑰放在堆棧中,以查找我們遇到的所有符號。到現在爲止還挺好。
當我們退出範圍時,我們彈出堆棧直到達到令牌。我們之前通過的每個符號都必須從我們的散列圖中刪除。
考慮下面的代碼:
{
a = 5;
{
a = 5;
}
}
將HashMap中能接受嗎?如在,我會輸入他們作爲一個關鍵。這不會是一個問題,但是當彈出並刪除它們時,Java能夠在這兩個對象之間做出區別嗎?或者第二個會覆蓋第一個?
我讀過它。但的確,這回答了它。 – KWyckmans