question: public LongMap ( int initialCapacity , float loadFactor ) { if ( initialCapacity < 0 ) throw new IllegalArgumentException ( "initialCapacity must be >= 0: " + initialCapacity ) ; if ( capacity > 1 << 30 ) throw new IllegalArgumentException ( "initialCapacity is too large: " + initialCapacity ) ; capacity = MathUtils . nextPowerOfTwo ( initialCapacity ) ; if ( loadFactor <= 0 ) throw new IllegalArgumentException ( "loadFactor must be > 0: " + loadFactor ) ; this . loadFactor = loadFactor ; threshold = ( int ) ( capacity * loadFactor ) ; mask = capacity - 1 ; hashShift = 31 - Integer . numberOfTrailingZeros ( capacity ) ; stashCapacity = Math . max ( 3 , ( int ) Math . ceil ( Math . log ( capacity ) ) + 1 ) ; pushIterations = Math . max ( Math . min ( capacity , 32 ) , ( int ) Math . sqrt ( capacity ) / 4 ) ; keyTable = new long [ capacity + stashCapacity ] ; valueTable = ( V [ ] ) new Object [ keyTable . length ] ; }
target:  Creates a new map with the specified initial capacity and load factor. This map will hold initialCapacity * loadFactor items before growing the backing table.