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

时间:2017-03-24 13:50:36

标签: memory arraylist size trim capacity

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

但是我只添加了10个字符串元素,其余40个内存被浪费了。

之后我使用trimToSize()函数。

我的问题是" trimToSize()函数是否保存了我的40个内存。"?

1 个答案:

答案 0 :(得分:2)

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

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

答案是肯定的:是的。

但只是为了记住你:这将“保存”你需要40个对象引用的空间。因此,如果您希望在该列表中存储字符串,整数或byte []对象并不重要。

超越:除非我们正在谈论资源关键环境;比如某些嵌入式系统,你不必过于担心40个列表插槽。也许大约100K;或1000万个插槽;但不是大约40岁。