我想要做的是创建一个能够复制二维数组的方法。下面的代码是我到目前为止,第一部分是用户输入数组信息,底部是我的问题开始。我不知道出了什么问题,每次运行代码我都会得到这样的结果:
输入号码。行: 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;
}
答案 0 :(得分:0)
尝试以下行来打印数组,
System.out.println(Arrays.toString(newArray));
或深度/嵌套数组
System.out.println(Arrays.deepToString(newArray));
我相信这link是相关的。
答案 1 :(得分:0)
有关如何克隆数组的信息,请参阅此问题... Make copy of array Java
另外,我稍微重构了一下代码。您的方法执行三个单独的任务:
这些应该是三种不同的方法。
答案 2 :(得分:0)
Array是一个对象。 Array的名称实际上是它的引用变量的名称。该变量将数组的起始地址保存在内存中。打印它将显示该内存地址(十六进制)。它还表示元素类型,前面是左括号字符&#34; [&#34;表示该对象是一个数组
System.out.println(newArray);
它打印您的数组在内存中引用的对象,而如果您必须打印数组的实际内容使用 -
System.out.println(Arrays.toString(newArray));