Make copy of an array
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();
If you want to make a copy of:
int[] a = {1,2,3,4,5};
This is the way to go:
int[] b = Arrays.copyOf(a, a.length);
Arrays.copyOf
may be faster than a.clone()
on small arrays. Both copy elements equally fast but clone() returns Object
so the compiler has to insert an implicit cast to int[]
. You can see it in the bytecode, something like this:
ALOAD 1INVOKEVIRTUAL [I.clone ()Ljava/lang/Object;CHECKCAST [IASTORE 2