Creates a new subarray from a larger array.
import java.lang.reflect.Array; import java.util.Enumeration; import java.util.Hashtable; /********************************************************************* * Array manipulation for Java 1.1+. * * <p> * Java 1.1 compatible. * </p> * * @see * ArrayLib2 * * @version * 2003-04-07 * @since * 2001-04-06 * @author * <a href="http://croftsoft.com/">David Wallace Croft</a>*/ public class Util{ /********************************************************************* * Creates a new subarray from a larger array. * * <p> * To avoid unnecessary object creation, this method returns the * original array argument if the requested subarray length is the same * and the startIndex is 0. That is to say, if the method arguments * are such that the algorithm would have created a shallow clone, the * original array is returned instead. * </p> * * @throws NullArgumentException * * If objectArray is null. * * @throws ArrayIndexOutOfBoundsException * * If startIndex, length, or startIndex + length are out of range. * * @return * * Returns an array with the same component type as the old array. *********************************************************************/ public static Object [ ] subArray ( Object [ ] objectArray, int startIndex, int length ) ////////////////////////////////////////////////////////////////////// { if ( ( startIndex == 0 ) && ( length == objectArray.length ) ) { return objectArray; } Object [ ] newArray = ( Object [ ] ) Array.newInstance ( objectArray.getClass ( ).getComponentType ( ), length ); System.arraycopy ( objectArray, startIndex, newArray, 0, length ); return newArray; } }