/** * Create a ResizableArray with the specified initialCapacity, expansionFactor, and * contractionCriteria. The <code>expansionMode</code> will default to <code>MULTIPLICATIVE_MODE. * </code> * * <p>Throws IllegalArgumentException if the following conditions are not met: * * <ul> * <li><code>initialCapacity > 0</code> * <li><code>expansionFactor > 1</code> * <li><code>contractionFactor >= expansionFactor</code> * </ul> * * @param initialCapacity The initial size of the internal storage array * @param expansionFactor the array will be expanded based on this parameter * @param contractionCriteria The contraction Criteria. * @throws IllegalArgumentException if parameters are not valid */ public ResizableDoubleArray( int initialCapacity, float expansionFactor, float contractionCriteria) { this.expansionFactor = expansionFactor; setContractionCriteria(contractionCriteria); setInitialCapacity(initialCapacity); internalArray = new double[initialCapacity]; }
/** * Create a ResizableArray with the specified initial capacity. Other properties take default * values: * * <ul> * <li><code>expansionMode = MULTIPLICATIVE_MODE</code> * <li><code>expansionFactor = 2.5</code> * <li><code>contractionFactor = 2.0</code> * </ul> * * @param initialCapacity The initial size of the internal storage array * @throws IllegalArgumentException if initialCapacity is not > 0 */ public ResizableDoubleArray(int initialCapacity) { setInitialCapacity(initialCapacity); internalArray = new double[this.initialCapacity]; }