如何解决java Arraylist删除元素
| 假设ArrayList中有10个元素,并且如果我从中间删除了2个元素,那么arraylist将包含8个元素,但那时容量为10或减少到8。解决方法
API指出:
每个ArrayList实例都有一个
容量。容量是大小
用于存储元素的数组
在列表中。它总是至少
与列表大小一样大。作为元素
被添加到ArrayList中,其
容量自动增长。的
没有关于增长政策的细节
指定超出事实,即添加
元素具有固定的摊销时间
成本。
并且您始终可以在调试器中根据经验进行测试。删除两个元素后,查看支持ѭ0的数组,并查看其大小。最有可能是10。
,该行为取决于ArrayList的实现。您不能依赖这种实现细节。您唯一必须考虑的是容量始终大于或等于列表中元素的数量。如果您需要容量正好是元素的数量(因为可能要减少内存使用),则必须使用函数
trimToSize()
明确询问。
,我认为这可能会改变,因为假设默认情况下我们创建了新的数组列表,JVM在内存中分配了10个连续位置。如果您输入8或2或0,它将是相同的。
但是如果您放置15个元素,那么它将增加它到20个存储位置。但是如果您再次低于10个,它将释放该内存并减小到10个默认大小。
这是动态分配。对于1000个元素列表,如果要删除元素并减少到2,则逻辑上必须释放该内存。这取决于删除的元素数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。