Mega Code Archive

 
Categories / Java / Collections Data Structure
 

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;     } }