我有一個程序,它將大量數據存儲在當前使用Hashmaps的內存中。我很好奇,如果有一個容器或集合在Java中,我可以更改容器的大小,而無需將內容複製到另一個容器。所以說我有一個Hashmap,它的大小是1000條目。我開始從Hashmap中移除數據。儘管它不再包含1000個條目,但Hashmap的大小仍爲1000。有沒有一個容器在那裏我可以釋放使用的內存而不復制內容。我不想複製內容的原因是存儲的數據太大,試圖將內容複製到新容器會導致我的系統內存不足。是否有Java容器或集合可以取消分配大小?
0
A
回答
1
看看如何java的HashMap的工作原理:當對象被刪除 http://opreview.blogspot.com/2013/03/how-does-hashmap-work-in-java-hashmap.html 尺寸變化但是它的容量(桶數組的大小)的大小保持不變 你應該重新考慮的HashMap的使用與ArrayList的,你可以調用方法 ArrayList.trimToSize()
+0
我存儲了大量數據來使用Arraylist,單獨搜索它會反作用。 – Jeremy
相關問題
- 1. java方法參數可以是聲明大小的集合嗎?
- 2. 內容(大小)是否可以與父項匹配?
- 3. MongoDB:是否有任何特定的大小分配給MongoDB集合?
- 4. 可以檢查一個集合或子集合是否存在?
- 5. 是否可以檢查通知是否可見或取消?
- 6. LLVM檢查數組分配是否具有動態大小或常量大小
- 7. 字體大小可以是css/css3中容器大小的%嗎?
- 8. 內容容器沒有調整大小以適合內容
- 9. 是否可以取消NKAssetDownload?
- 10. 是否可以從容器中獲取某些ejb實例的集合?
- 11. NSStatusItem是否可以縮小以適合?
- 12. 是否可以動態更改最大Java堆大小?
- 13. 是否可以使用css3 scale縮放容器大小(不縮放內容)?
- 14. 查詢以檢查集合的大小是否爲0或在SQLAlchemy中爲空?
- 15. 是否可以更改「可配置表單」的大小?
- 16. 可以用kmalloc()分配的最大大小取決於free_area []的大小嗎?
- 17. 是否可以以不區分大小寫的方式匹配intent-filter的pathPattern?
- 18. 是否可以延遲或取消視圖消失?
- 19. Java是否區分大小寫?
- 20. 是否可以從kubernetes容器中獲取容器名稱?
- 21. string.c_str()取消分配是否必要?
- 22. Java DecimalFormat,是否可以在小數部分進行分組?
- 23. 在SQL中,是否有非集合最小/最大運營商
- 24. 可以使mapreudce輸入拆分大小大於容器或tasktracker jvm堆大小嗎?
- 25. Redis - 數據大小是否可以大於內存大小?
- 26. 是否可以放大和縮小div的內容?
- 27. 分配可變大小類
- 28. 是否可以調整Jlabel的大小?
- 29. 是否可以使用Spring配置創建集合?
- 30. 是否可以匹配make文件中的集合?
_Hashmap保持1000即使它不包含1000個entries_我不認爲這是真的。它使用一個鏈表。條目在元素被刪除時被刪除。 –
@SotiriosDelimanolis是對的,地圖的哈希表不能被減少,但是單個對象將在GC中回收,如果他們不是「活着的」。 –
當我刪除條目,我沒有看到我的記憶下降,導致我認爲分配給哈希映射的大小不下降。 – Jeremy