Mega Code Archive

 
Categories / Java / Collections Data Structure
 

Array Expander

//package com.witframework.util; import java.lang.reflect.Array; public final class ArrayExpander {   public static Object merge(Object array1,Object array2){     if (array1 == null) {       return null;     }     if (array2 == null) {       return array1;     }     Class c = array1.getClass();     if(c.isArray()&&array2.getClass().isArray()){       Class cc = c.getComponentType();       Object newArray = Array.newInstance(cc, Array.getLength(array1)+Array.getLength(array2));       System.arraycopy(array1, 0, newArray, 0, Array.getLength(array1));       System.arraycopy(array2, 0, newArray, Array.getLength(array1), Array.getLength(array2));       return newArray;     }else {       throw new ClassCastException("need  array");     }        }   public static Object expand(Object array, int newSize) {     if (array == null) {       return null;     }     Class c = array.getClass();     if (c.isArray()) {       int len = Array.getLength(array);       if (len >= newSize) {         return array;       } else {         Class cc = c.getComponentType();         Object newArray = Array.newInstance(cc, newSize);         System.arraycopy(array, 0, newArray, 0, len);         return newArray;       }     } else {       throw new ClassCastException("need  array");     }   }   public static Object expandAtHead(Object array, int newSize) {     if (array == null) {       return null;     }     Class c = array.getClass();     if (c.isArray()) {       int len = Array.getLength(array);       if (len >= newSize) {         return array;       } else {         Class cc = c.getComponentType();         Object newArray = Array.newInstance(cc, newSize);         System.arraycopy(array,0, newArray, newSize-len, len);         return newArray;       }     } else {       throw new ClassCastException("need  array");     }   }   }