trimtosize() 函数是否适用于 ArrayList 中的 ensureCapacity() 函数

Does trimtosize() function works on ensureCapacity() function in ArrayList

假设我有一个字符串数组列表。 我使用了 Function ensureCapacity() 并将其容量设置为 50。

但我只添加了 10 个字符串元素,剩下的 40 个内存被浪费了。

现在我使用 trimToSize() 函数。

我的问题是 "Does trimToSize() Function save my 40 memory."?

我假设你在谈论 Java,因为 Java ArrayList 有你提到的那些方法,比如 trimToSize()。并引用该方法的 javadoc:

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

所以答案是:是的,完全正确。

但请记住:这将 "save" 您 space 需要 40 个对象引用。因此,如果您想在该列表中存储字符串、整数或 byte[] 对象并不重要。

及以后:除非我们谈论的是资源关键环境;比如一些嵌入式系统,你不应该太担心40个列表槽。也许大约 100K;或 1000 万个插槽;但不是大约 40.