Created
February 10, 2018 06:12
-
-
Save wotchin/cee66c13ea80b6dbab51000868299ee2 to your computer and use it in GitHub Desktop.
from ArrayDeque.java file, find 2^n value. //寻找最临近的2的指数次数值,结果-1可以作为mask使用
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private static int getCapacity(int numElements) { | |
int initialCapacity = numElements; | |
initialCapacity |= (initialCapacity >>> 1); | |
initialCapacity |= (initialCapacity >>> 2); | |
initialCapacity |= (initialCapacity >>> 4); | |
initialCapacity |= (initialCapacity >>> 8); | |
initialCapacity |= (initialCapacity >>> 16); | |
initialCapacity++; | |
if (initialCapacity < 0) // Too many elements, must back off | |
initialCapacity >>>= 1;// Good luck allocating 2 ^ 30 elements | |
return initialCapacity; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment