数组为EMPTY_ELEMENTDATA就走基于用户设置大小值进行1.5倍扩容(这里是空所以是0),数组为默认空DEFAULTCAPACITY_EMPTY_ELEMENTDATA就会走基于默认值的大小10扩容进行1.5倍扩容。 核心代码:如果是默认初始化空容量会走 if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) { minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity); }这段代码,接下来基于默认初始化大小10扩容,依次是10,15,22,33这种1.5倍数扩容。如果List<String>list = new ArrayList<>(0);那就是基于你设置的大小0开始扩容,依次是0,1 ,2,3 ,4, 6这种1.5倍数扩容
Java中的ArrayList为什么要使用EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA这两个空数组
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.ArrayList的基本介绍 官方API:java.util.ArrayList 官方解释永远是最权威的解释 ...
- 点关注,不迷路;持续更新Java相关技术及资讯!!! 本文主要讲解List接口的三个实现类ArrayList、Li...
- ArrayList继承自AbstractList,并实现了List、RandomAccess、Cloneable、...
- 1. 简介 ArrayList 是可以动态增长和缩减的索引序列,它是基于数组实现的 List 类。 该类封装了一个...