我试图简单地创建一个返回2D数组的方法,该数组具有基于给定模式输入的所有值。 Eclipse说我的代码没有任何错误,但是当我去运行时,我得到了响应" [[I @ 2a139a55"。我用Google搜索并了解它的内容,但我仍然不知道如何修复我的代码。
async
答案 0 :(得分:5)
尝试
System.out.println(Arrays.toString(array));
或者您的数组是否包含其他数组作为元素
System.out.println(Arrays.deepToString(array))
答案 1 :(得分:2)
您必须打印2d数组。
为此你不能简单地做System.out.println()
代码应该类似于以下内容:
public class Transpose {
public static int[][] createPatterned2DArray(int row,int column){
int width = column;
int height = row;
int[][] array = new int[height][width];
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
array[i][j] = i + j + (width * i);
}
}
return array;
}
public static void main(String[] args) {
int arr[][] = createPatterned2DArray(3,5);
for (int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
System.out.println(arr[i][j]);
}
}
}
}
答案 2 :(得分:0)
此System.out.print(array)
语句不会为您提供数组元素值的预期输出:
实际上,当你打印数组时,你会得到这样奇怪的输出:
[[I@15db9742
此输出的原因:
数组被视为对象,因此默认结果为
Object#toString()
将用作字符串表示。
实现您的目标:
Arrays.toString()
方法打印简单数组或一维数组。Arrays.deepToString()
方法打印嵌套数组。在您打印2D阵列的情况下,您可以使用:
System.out.print(Arrays.deepToString(createPatterned2DArray(3,5)));
查看此answer以获取更多信息。