文件名称:Collections源码java-Java-Collections-Resize-Logic-Note:从源码角度分析Java中常用集合类的
文件大小:13KB
文件格式:ZIP
更新时间:2024-06-08 07:17:30
系统开源
Collections 源码 java Java中集合的扩容策略及实现 从源码角度分析Java中常用集合类的扩容机制 从这一篇开始,会陆续通过笔记来整理和记录之前看过的各种Java集合相关的知识点,主要包括List和Map。今天这一篇主要整理一下集合扩容相关的知识,涉及到的集合框架有:HashMap,ArrayMap,SparseArray,ArrayList,Vector。下面先从ArrayList开始。 ArrayList ArrayList是以数组实现的一个集合类,在ArrayList的源码中可以看到,所有元素都是被储存在elementData这个全局的数组变量中,而所谓的扩容也是针对这个数组对象进行操作。具体来说,当一个添加元素的动作,即add或addAll被执行时,都会先调用ensureCapacityInternal(...)方法进行容量预检,如果当前elementData数组的容量不足以完成本次添加操作便会进行自动扩容。该方法代码如下: //这是一个私有方法,ArrayList提供了另一个public的扩容方法ensureCapacity以满足外界手动扩容的需求 //
【文件预览】:
Java-Collections-Resize-Logic-Note-master
----README.md(36KB)