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.
In C++ an array can be copied manually (by hand) or by using the std::copy() function, from the C++ algorithm library. In computer programming, there is shallow copying and there is deep copying. Shallow copying is when two different array names (old and new), refer to the same content.
Because arrays in JS are reference values, so when you try to copy it using the = it will only copy the reference to the original array and not the value of the array. To create a real copy of an array, you need to copy over the value of the array under a new value variable.
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();
you can use
int[] a = new int[]{1,2,3,4,5}; int[] b = a.clone();
as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With