/*** Reallocates an array with a new size, and copies the contents* of the old array to the new array.* @param oldArray the old array, to be reallocated.* @param newSize the new array size.* @return A new array with the same contents.*/privatestaticObjectresizeArray(ObjectoldArray,intnewSize){intoldSize=java.lang.reflect.Array.getLength(oldArray);ClasselementType=oldArray.getClass().getComponentType();ObjectnewArray=java.lang.reflect.Array.newInstance(elementType,newSize);intpreserveLength=Math.min(oldSize,newSize);if(preserveLength>0)System.arraycopy(oldArray,0,newArray,0,preserveLength);returnnewArray;}// Test routine for resizeArray().publicstaticvoidmain(String[]args){int[]a={1,2,3};a=(int[])resizeArray(a,5);a[3]=4;a[4]=5;for(inti=0;i<a.length;i++)System.out.println(a[i]);}
0 Comments