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

标签 memory arraylist size trim capacity

假设我有一个字符串数组列表。 我使用了 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/

相关文章:

php - 如何调试 fatal error : Allowed memory size of XXXX bytes exhausted (tried to allocate VVV bytes)

c - 填写作为指针传递的 vector (C)

java - 列中三行不必要的行

java - 无法从图库中导入正常大小的图像

html - 如何在响应式设计中保留图标尺寸?不使用像素

c - 检索符号链接(symbolic link)的路径

检查并比较不同类型变量的内存地址

c++ - C++中虚方法表存储在哪里?

arrays - PowerShell 从数组中删除项目 [0]

java - 设置数组列表格式