Make copy of an array

badcoder picture badcoder · Apr 26, 2011 · Viewed 726.3k times · Source

I have an array a which is constantly being updated. Let's say a = [1,2,3,4,5]. I need to make an exact duplicate copy of a and call it b. If a were to change to [6,7,8,9,10], b should still be [1,2,3,4,5]. What is the best way to do this? I tried a for loop like:

for(int i=0; i<5; i++) {
    b[i]=a[i]
}

but that doesn't seem to work correctly. Please don't use advanced terms like deep copy, etc., because I do not know what that means.

Answer

Bala R picture Bala R · Apr 26, 2011

You can try using System.arraycopy()

int[] src  = new int[]{1,2,3,4,5};
int[] dest = new int[5];

System.arraycopy( src, 0, dest, 0, src.length );

But, probably better to use clone() in most cases:

int[] src = ...
int[] dest = src.clone();