有参构造器ArrayList list = new ArrayList();底层的实现方式
传入集合的有参构造器ArrayList list = new ArrayList(8);底层实现
也就说明,无参构造器,一开始得到的集合是空的
扩容list.add(new Book(“红楼梦”,30,“曹雪芹”));底层的实现
首先走到这里
然后再进入ensureCapacityInternal(size + 1)判断是否需要扩容
进入calculateCapacity(Object[] elementData, int minCapacity)确定扩容的容量
再进入这个方法,确定添加数据
最后才进行扩容
若有参构造时,传的数据是0,那么,扩容还是会按照0扩容,不会按照无参时考虑是否大于10,来扩容。即扩容后elementData数组容量依次为0、newCapacity=1、newCapacity=2、newCapacity=(2+2/2)=3、newCapacity=(3+3/2)=4,newCapacity=(4+4/2)=6,即第六次添加数据不扩容,第七次添加还用扩容…
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页题目:四、ArrayList底层源码详解-创新互联
本文地址:https://www.cdcxhl.com/article10/cdeego.html
成都网站建设公司_创新互联,为您提供品牌网站设计、微信公众号、做网站、关键词优化、网页设计公司、建站公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联