位置: IT常识 - 正文
推荐整理分享java中ArrayList集合的扩容机制(java arraytolist),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:arraylist java,java arraylist sublist,java array list,java arraylist join,java array list,java中arraylist用法,java arraylist集合,java arraylist集合,内容如对您有帮助,希望把文章链接给更多的朋友!
710
1、扩容要看添加方法,从属性中可以看出有一个DEFAULT_CAPACITY属性值10。
publicbooleanadd(Ee){//验证是否需要扩容操作ensureCapacityInternal(size+1);//IncrementsmodCount!!//在对应的下标下添加值elementData[size++]=e;returntrue;2、刚刚进入ensureCapacityInternal(size+1)size是一个完整的变量。
标记了ArrayList的大小(包含的元素数),而此时没有元素的是ensureCapacityInternal(0+1)。
//1、进入这个方法privatevoidensureCapacityInternal(intminCapacity){//2、先调用calculateCapacity(elementData,minCapacity)、这个方法就是检查第一次添加数据、并返回默认的容器大小(就是10)//4、就是执行这个方法ensureExplicitCapacity(10)//为什么参数是10、就是因为这个方法calculateCapacity(elementData,minCapacity)做了操作。ensureExplicitCapacity(calculateCapacity(elementData,minCapacity));//3、数组容量计算privatestaticintcalculateCapacity(Object[]elementData,intminCapacity){//这个能处理就是第一次添加数据时为真if(elementData==DEFAULTCAPACITY_EMPTY_ELEMENTDATA){//然后这个成立、这个方法是取参数1和参数2、两个数之间的最大值//DEFAULT_CAPACITY:默认为10//minCapacity:第一次添加数据为1//所以10和1、10大、最后将10返回出去returnMath.max(DEFAULT_CAPACITY,minCapacity);returnminCapacity;//5、确保显式容量privatevoidensureExplicitCapacity(intminCapacity){modCount++;//6、做判断、//第一次添加数据时为10-0>0:第一次可以成立//第二次添加数据时为2-10>0:第二次可以不成立if(minCapacity-elementData.length>0)//7、执行下面方法、这个方法的作用才是正真的实施扩容并确定首次扩容ArrayList容器大小的方法grow(minCapacity);//扩容以上就是java中ArrayList集合的扩容机制,希望对大家有所帮助。更多Java学习指路:Java基础
上一篇:PHPCMS漏洞之文件poster.php(phpweb漏洞)
下一篇:Fishwife不是“鱼妻子”!真实含义让人颤抖!(frogfish躄鱼)
友情链接: 武汉网站建设