Java tutorial
//package com.java2s; import java.lang.reflect.Array; public class Main { /** * Merges two arrays into a new array. Elements from array1 and array2 will * be copied into a new array, that has array1.length + array2.length * elements. * * @param pArray1 First array * @param pArray2 Second array, must be compatible with (assignable from) * the first array * @return A new array, containing the values of array1 and array2. The * array (wrapped as an object), will have the length of array1 + * array2, and can be safely cast to the type of the array1 * parameter. * @see #mergeArrays(Object,int,int,Object,int,int) * @see java.lang.System#arraycopy(Object,int,Object,int,int) */ public static Object mergeArrays(Object pArray1, Object pArray2) { return mergeArrays(pArray1, 0, Array.getLength(pArray1), pArray2, 0, Array.getLength(pArray2)); } /** * Merges two arrays into a new array. Elements from pArray1 and pArray2 will * be copied into a new array, that has pLength1 + pLength2 elements. * * @param pArray1 First array * @param pOffset1 the offset into the first array * @param pLength1 the number of elements to copy from the first array * @param pArray2 Second array, must be compatible with (assignable from) * the first array * @param pOffset2 the offset into the second array * @param pLength2 the number of elements to copy from the second array * @return A new array, containing the values of pArray1 and pArray2. The * array (wrapped as an object), will have the length of pArray1 + * pArray2, and can be safely cast to the type of the pArray1 * parameter. * @see java.lang.System#arraycopy(Object,int,Object,int,int) */ @SuppressWarnings({ "SuspiciousSystemArraycopy" }) public static Object mergeArrays(Object pArray1, int pOffset1, int pLength1, Object pArray2, int pOffset2, int pLength2) { Class class1 = pArray1.getClass(); Class type = class1.getComponentType(); // Create new array of the new length Object array = Array.newInstance(type, pLength1 + pLength2); System.arraycopy(pArray1, pOffset1, array, 0, pLength1); System.arraycopy(pArray2, pOffset2, array, pLength1, pLength2); return array; } }