0

我有一个程序,它在当前使用 Hashmaps 的内存中存储大量数据。我很好奇java中是否有一个容器或集合,我可以在不将内容复制到另一个容器的情况下更改容器的大小。假设我有一个 Hashmap,它的大小是 1000 个条目。我开始从 Hashmap 中删除数据。Hashmap 的大小仍然为 1000,即使它不再包含 1000 个条目。那里有一个容器,我可以在不复制内容的情况下释放使用的内存。我不想复制内容的原因是存储的数据太大,尝试将内容复制到新容器会导致我的系统内存不足。

4

1 回答 1

1

看看 java HashMap 是如何工作的:http: //opreview.blogspot.com/2013/03/how-does-hashmap-work-in-java-hashmap.html 当对象被移除时大小会改变,但是它的容量(桶数组的大小)保持不变您应该重新考虑 HashMap 与 ArrayList 的用法,您可以在其中调用方法 ArrayList.trimToSize()

于 2013-10-09T20:59:43.673 回答