auto commit

This commit is contained in:
CyC2018
2020-11-19 01:40:33 +08:00
parent e7478680c0
commit 493f076782
3 changed files with 4 additions and 4 deletions

View File

@ -132,7 +132,7 @@ private static final int DEFAULT_CAPACITY = 10;
#### 2. 扩容
添加元素时使用 ensureCapacityInternal() 方法来保证容量足够如果不够时需要使用 grow() 方法进行扩容新容量的大小为 `oldCapacity + (oldCapacity >> 1)`也就是旧容量的 1.5 倍左右oldCapacity 为偶数就是 1.5 oldCapacity为奇数就是 1.5 -0.5奇偶不同比如 8+8/2 = 12, 13+13/2=19如果是奇数的话会丢掉小数
添加元素时使用 ensureCapacityInternal() 方法来保证容量足够如果不够时需要使用 grow() 方法进行扩容新容量的大小为 `oldCapacity + (oldCapacity >> 1)` oldCapacity+oldCapacity/2其中 oldCapacity >> 1 需要取整所以新容量大约是旧容量的 1.5 倍左右oldCapacity 为偶数就是 1.5 为奇数就是 1.5 -0.5
扩容操作需要调用 `Arrays.copyOf()` 把原数组整个复制到新数组中这个操作代价很高因此最好在创建 ArrayList 对象时就指定大概的容量大小减少扩容操作的次数