2013-10-09 19 views
0

我有一個程序,它將大量數據存儲在當前使用Hashmaps的內存中。我很好奇,如果有一個容器或集合在Java中,我可以更改容器的大小,而無需將內容複製到另一個容器。所以說我有一個Hashmap,它的大小是1000條目。我開始從Hashmap中移除數據。儘管它不再包含1000個條目,但Hashmap的大小仍爲1000。有沒有一個容器在那裏我可以釋放使用的內存而不復制內容。我不想複製內容的原因是存儲的數據太大,試圖將內容複製到新容器會導致我的系統內存不足。是否有Java容器或集合可以取消分配大小?

+0

_Hashmap保持1000即使它不包含1000個entries_我不認爲這是真的。它使用一個鏈表。條目在元素被刪除時被刪除。 –

+0

@SotiriosDelimanolis是對的,地圖的哈希表不能被減少,但是單個對象將在GC中回收,如果他們不是「活着的」。 –

+0

當我刪除條目,我沒有看到我的記憶下降,導致我認爲分配給哈希映射的大小不下降。 – Jeremy

回答

相關問題