黑马程序员技术交流社区

标题: ArrayList的优化 [打印本页]

作者: hmhm123    时间: 2018-4-30 14:04
标题: ArrayList的优化
本帖最后由 hmhm123 于 2018-4-30 14:06 编辑

ArrayList使用一个内置的数组来存储元素,这个数组的起始容量是10.
当数组需要增长时,新的容量按如下公式获得:新容量=(旧容量*3)/2+1,也就是说每一次容量大概会增长50%。

这就意味着,如果你有一个包含大量元素的ArrayList对象,那么最终将有很大的空间会被浪费掉,这个浪费是由ArrayList的工作方式本身造成的。

如果没有足够的空间来存放新的元素,数组将不得不被重新进行分配以便能够增加新的元素。对数组进行重新分配,将会导致性能急剧下降。
如果我们知道一个ArrayList将会有多少个元素,我们可以通过构造方法来指定容量。我们还可以通过trimToSize方法在ArrayList分配完毕之后去掉浪费掉的空间。


作者: Yin灬Yan    时间: 2018-4-30 17:24
我来占层楼啊   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2