因此,几乎每个与 ArrayList 容量相关的问题都是如何使用它或(奇怪地)访问它,我对这些信息非常熟悉。我感兴趣的是,如果您碰巧知道或粗略地知道 ArrayList 中有多少项,是否真的值得使用设置容量的 ArrayList 构造函数?
是否有任何全面的基准比较仅使用向 ArrayList 添加元素与预先设置 ArrayList 的容量所需的时间?
显然,对于任何特定的应用程序,您都必须测试任何性能调整,以确定它们是否实际上是优化(以及它们是否实际上是必要的),但有时显式设置容量可能是值得的。例如:
- 您正在创建大量的数组列表,其中大部分都非常小。在这种情况下,您可能希望将初始容量设置得非常低,和/或在填充给定数组后修剪容量。 (在这种情况下,优化与其说是速度问题,不如说是内存使用问题。但请注意,列表本身有内存开销,它包含的数组也是如此,因此在这种情况下,最好重新设计一种减少列表的方法。)
- 您正在创建一个数组列表very已知尺寸较大,并且您需要时间添加each元素非常小(也许是因为每次添加元素时,都必须向外部数据源发送一些响应)。 (默认几何增长需要摊销的恒定时间:每隔一段时间,就会产生巨大的惩罚,因此整体平均性能完全没问题,但如果您关心单独进行的单个插入,那可能还不够好。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)