假设我有一个字符串数组列表。 我使用了函数ensureCapacity()并将其容量设置为50。
但是我只添加了10个字符串元素,其余40个内存被浪费了。
之后我使用trimToSize()
函数。
我的问题是" trimToSize()函数是否保存了我的40个内存。"?
答案 0 :(得分:2)
我假设你在谈论Java,因为Java ArrayList有你提到的那些方法,比如trimToSize()。引用该方法的javadoc:
将此ArrayList实例的容量调整为列表的当前大小。应用程序可以使用此操作来最小化ArrayList实例的存储。
答案是肯定的:是的。
但只是为了记住你:这将“保存”你需要40个对象引用的空间。因此,如果您希望在该列表中存储字符串,整数或byte []对象并不重要。
超越:除非我们正在谈论资源关键环境;比如某些嵌入式系统,你不必过于担心40个列表插槽。也许大约100K;或1000万个插槽;但不是大约40岁。