假设我有一个字符串数组列表。 我使用了 Function ensureCapacity() 并将其容量设置为 50。
但我只添加了 10 个字符串元素,剩下的 40 个内存被浪费了。
现在我使用 trimToSize()
函数。
我的问题是“trimToSize() 函数是否节省了我的 40 内存。”?
最佳答案
我假设您在谈论 Java,因为 Java ArrayList 具有您提到的那些方法,例如 trimToSize() .并从该方法的 javadoc 中引用:
将此 ArrayList 实例的容量修剪为列表的当前大小。应用程序可以使用此操作来最小化 ArrayList 实例的存储。
所以答案是:是的,完全正确。
但请记住:这将为您“节省” 40 个对象引用所需的空间。因此,如果您想在该列表中存储字符串、整数或 byte[] 对象并不重要。
以及更远的地方:除非我们谈论的是资源关键型环境;比如一些嵌入式系统,你不应该太担心40个列表槽。也许大约 100K;或 1000 万个插槽;但不是大约 40。
关于memory - trimtosize() 函数是否适用于 ArrayList 中的 ensureCapacity() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43001232/