快速业务通道

ArrayList的动态扩展

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

ArrayList相比较Array来说,具有的优势是可以动态扩展,即它所包含的成员 个数是不确定的,可以随着不断地添加,或者移除进行扩展。但我们一定要知道 的是,ArrayList是基于Array(数组)的,我们来看一下它的构造函数

其实这个Items是一个object的数组。这也从另外一方面说明了ArrayList是基 于Object的,所以无法避免装箱和拆箱操作。这与泛型的List是不一样的

那么,到底ArrayList是如何动态扩展的呢?是不是需要增加一个元素的时候 ,就扩展一次呢?不是这样的。

首先,ArrayList的初始化个数是4.当请求的条目总数将要大于目前的个数, 例如现在要插入第5个元素时,它并不是扩展一个空间,而是将现有的个数乘以2 ,然后将原来的元素复制过去.如下面所示

了解这个原理将有助于我们更好地理解ArrayList的机制,从经验上说,应该 为ArrayList设置一个合适的Capacity,这样就不会出现为了一个元素的增长,而 申请那么多的空间的问题.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号