private void allocateElements ( int numElements ) { int initialCapacity = MIN_INITIAL_CAPACITY ; // Find the best power of two to hold elements. // Tests "<=" because arrays aren't kept full. if ( numElements >= initialCapacity ) { 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 } elements = new Object [ initialCapacity ] ; }
Allocates empty array to hold the given number of elements .