From e145611d13dafcd590640fceb667596d255b5a8c Mon Sep 17 00:00:00 2001 From: Lemon Seven <43209747+JerrySeven@users.noreply.github.com> Date: Tue, 19 Mar 2019 10:47:56 +0800 Subject: [PATCH] Update ArrayList-Grow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "所以 ArrayList 每次扩容之后容量都会变为原来的 1.5 倍! 记清楚了!不是网上很多人说的 1.5 倍+1!" 修改为 “所以 ArrayList 每次扩容之后容量都会变为原来的 1.5 倍!(JDK1.6版本以后)** JDk1.6版本时,扩容之后容量为 1.5 倍+1!” --- Java/ArrayList-Grow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Java/ArrayList-Grow.md b/Java/ArrayList-Grow.md index d763cb83..7b1e7afe 100644 --- a/Java/ArrayList-Grow.md +++ b/Java/ArrayList-Grow.md @@ -145,7 +145,7 @@ } ``` -**int newCapacity = oldCapacity + (oldCapacity >> 1),所以 ArrayList 每次扩容之后容量都会变为原来的 1.5 倍!** 记清楚了!不是网上很多人说的 1.5 倍+1! +**int newCapacity = oldCapacity + (oldCapacity >> 1),所以 ArrayList 每次扩容之后容量都会变为原来的 1.5 倍!(JDK1.6版本以后)** JDk1.6版本时,扩容之后容量为 1.5 倍+1! > ">>"(移位运算符):>>1 右移一位相当于除2,右移n位相当于除以 2 的 n 次方。这里 oldCapacity 明显右移了1位所以相当于oldCapacity /2。对于大数据的2进制运算,位移运算符比那些普通运算符的运算要快很多,因为程序仅仅移动一下而已,不去计算,这样提高了效率,节省了资源