78.7k views
3 votes
Public class ArrayCopy {

public static void main (String[] argv)
{
int[][] A = {
{1},
{2, 1},
{3, 2, 1},
{4, 3, 2, 1},
{5, 4, 3, 2, 1}
};
print (A);

int[][] B = copy (A);
print (B);
}

static void print (int[][] X)
{
for (int i=0; i for (int j=0; j < X[i].length; j++) {
System.out.print (" " + X[i][j]);
}
System.out.println ();
}
}

// INSERT YOUR CODE HERE.

}

User IFlo
by
7.2k points

1 Answer

2 votes

Answer:

To implement the copy method, we need to create a new 2D array with the same dimensions as the input array A, and then copy the values from A into the new array. Here's one way to do it:

static int[][] copy(int[][] A) {

int[][] B = new int[A.length][];

for (int i = 0; i < A.length; i++) {

B[i] = new int[A[i].length];

for (int j = 0; j < A[i].length; j++) {

B[i][j] = A[i][j];

}

}

return B;

}

This method creates a new 2D array B with the same number of rows as A. For each row of A, it creates a new array with the same length as that row, and then copies the values from A into the new array. Finally, it returns the new array B.

Here's the complete code with the copy method added:

public class ArrayCopy {

public static void main (String[] argv) {

int[][] A = {

{1},

{2, 1},

{3, 2, 1},

{4, 3, 2, 1},

{5, 4, 3, 2, 1}

};

print (A);

int[][] B = copy (A);

print (B);

}

static void print (int[][] X) {

for (int i=0; i<X.length; i++) {

for (int j=0; j<X[i].length; j++) {

System.out.print (" " + X[i][j]);

}

System.out.println ();

}

}

static int[][] copy(int[][] A) {

int[][] B = new int[A.length][];

for (int i = 0; i < A.length; i++) {

B[i] = new int[A[i].length];

for (int j = 0; j < A[i].length; j++) {

B[i][j] = A[i][j];

}

}

return B;

}

}

Hope this helps!

User Goran Radulovic
by
8.0k points