如何在Java中复制二维数组和打印副本?

时间:2016-03-11 04:48:39

标签: java arrays multidimensional-array

我想要做的是创建一个能够复制二维数组的方法。下面的代码是我到目前为止,第一部分是用户输入数组信息,底部是我的问题开始。我不知道出了什么问题,每次运行代码我都会得到这样的结果:

输入号码。行: 2

输入号码。列: 2

输入元素:3

输入元素:7

输入元素:5

输入元素:8

[[I @ 3669ae9f

[[I @ 3669ae9f

这是我的代码:

   public static int[][] copyArray(int[][] array) throws IOException
   {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter the no. of rows: ");
    int m = Integer.parseInt(br.readLine());
    System.out.println("Enter the no. of columns: ");
    int n = Integer.parseInt(br.readLine());

    int A[][] = new int[m][n]; 

    for(int row = 0; row < m; row++)
    {
        for(int column = 0; column < n; column++)
        {
            System.out.print("Enter the elements: ");
            A[row][column] = Integer.parseInt(br.readLine());
        }
    } 

    int[][] newArray = new int[A.length][];
    for(int x = 0; x < A.length; x++)
    {
        newArray[x] = A[x].clone();
        System.out.println(newArray);
    }
    return newArray;
   }

3 个答案:

答案 0 :(得分:0)

尝试以下行来打印数组,

System.out.println(Arrays.toString(newArray));

或深度/嵌套数组

System.out.println(Arrays.deepToString(newArray));

我相信这link是相关的。

答案 1 :(得分:0)

有关如何克隆数组的信息,请参阅此问题... Make copy of array Java

另外,我稍微重构了一下代码。您的方法执行三个单独的任务:

  • 填充数组
  • 复制数组
  • print array

这些应该是三种不同的方法。

答案 2 :(得分:0)

Array是一个对象。 Array的名称实际上是它的引用变量的名称。该变量将数组的起始地址保存在内存中。打印它将显示该内存地址(十六进制)。它还表示元素类型,前面是左括号字符&#34; [&#34;表示该对象是一个数组

System.out.println(newArray);  

它打印您的数组在内存中引用的对象,而如果您必须打印数组的实际内容使用 -

System.out.println(Arrays.toString(newArray));