Skip to content

Commit 2d59232

Browse files
authored
Update ArrayList-Grow.md
1 parent 311b0bd commit 2d59232

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

Java相关/ArrayList-Grow.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
}
146146
```
147147

148-
**int newCapacity = oldCapacity + (oldCapacity >> 1),所以在capacity是偶数的情况下,ArrayList 每次扩容之后容量都会变为原来的 1.5 倍,当capacity为奇数时(自己初始化容量时可能出现),第一次扩容容量变为oldCapacity + (oldCapacity - 1) / 2(在计算机运算的情况下减一除和直接除没有差别,对于整数会自动舍掉小数位),也就是说每次扩容相当于计算机中的1.5倍。 ** 记清楚了!不是网上很多人说的 1.5 倍+1!当然了,第一次扩容以后capacity会变为偶数,之后的每次扩容都会是原容量的1.5倍了。
148+
**int newCapacity = oldCapacity + (oldCapacity >> 1),所以 ArrayList 每次扩容之后容量都会变为原来的 1.5 倍!** 记清楚了!不是网上很多人说的 1.5 倍+1!
149149

150150
> ">>"(移位运算符):>>1 右移一位相当于除2,右移n位相当于除以 2 的 n 次方。这里 oldCapacity 明显右移了1位所以相当于oldCapacity /2。对于大数据的2进制运算,位移运算符比那些普通运算符的运算要快很多,因为程序仅仅移动一下而已,不去计算,这样提高了效率,节省了资源  
151151

0 commit comments

Comments
 (0)