Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make copy of an array

Tags:

java

arrays

copy

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.

like image 553
badcoder Avatar asked Apr 26 '11 03:04

badcoder


People also ask

How do I make a copy of an array in C++?

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.

How do you copy an array in JavaScript?

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.


2 Answers

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(); 
like image 142
Bala R Avatar answered Nov 11 '22 18:11

Bala R


you can use

int[] a = new int[]{1,2,3,4,5}; int[] b = a.clone(); 

as well.

like image 38
MeBigFatGuy Avatar answered Nov 11 '22 18:11

MeBigFatGuy