Java ArrayList 删除元素可恢复浪费的空间



如果你有一个数组列表,它已经扩展(数组已经增长(以包含许多元素,然后这些元素被删除,实际的数组大小是否会改变以节省内存?

更详细地说,从大型数组列表中删除元素时,数组的保留内存是否恢复了数组的空部分?这似乎是合乎逻辑的,因为我们扩展了数组,我们可能需要使用这个空间,因此不会触及它。

但是,如果我们有一个非常大的数组列表并且我们只使用前 10 个左右的元素,编译器(或在运行时(是否会意识到所有额外的空间都被浪费并恢复它?(实际数组大小会减小吗?(将元素复制到较小的数组中?

您可以调用 trimToSize() 以便将 ArrayList 的后备数组替换为与列表大小匹配的较小数组。

void java.util.ArrayList.trimToSize((

将此 ArrayList 实例的容量修剪为列表的当前大小。应用程序可以使用此操作来最小化 ArrayList 实例的存储。

最新更新