Copying a small array into a larger one without changing the target array's size

java

Solution

Try this:

System.arraycopy(arr1, 0, arr, 0, arr1.length);

The size of `arr` will not change (that is, `arr.length == 10` will still be `true`), but only the first `arr1.length` elements will be changed. If you want the elements of `arr1` to be copied into `arr` starting somewhere other than the first element, just specify where:

System.arraycopy(arr1, 0, arr, offset, arr1.length);

If there's a possibility that the offset is so large that the result would run off the end of the destination array, you need to check for that to avoid an exception:

System.arraycopy(arr1, 0, arr, offset,
    Math.max(0, Math.min(arr1.length, arr.length - offset - arr1.length)));

Problem

I want to copy a small array into a larger one. For example: ``` String arr[] = new String[10]; ``` Now I have another small array ``` String arr1[] = new String[4]; ``` I want to copy `arr1` into `arr` without changing the larger array's length. ie `arr` should maintain a length of 10 and copying of all elements should be successfully. Can anyone please tell me how can I do this?

Original source