【发布时间】:2014-11-15 08:17:27
【问题描述】:
只是在二维数组中显示值并注意到我的代码打印了一些 hashcodes 然后是值。但我没有打印数组对象本身(如here 帖子中所做的那样)或至少显式调用数组对象的toString 或hashcode 方法。相反,我使用arrayObj[i] 和arrayObj[i][j] 直接访问和打印数组中的值。
这是我的代码:
class PrintTwoDimArray {
public int [][] createArray () {
int counter = 0;
int[][] intArray = new int [2][4];
for (int i = 0; i < intArray.length; i++) {
for (int j = 0; j < intArray[i].length; j++) {
intArray[i][j] = ++counter;
}
}
return intArray;
}
public void printArray ( int [][] arrayObj ) {
for (int i = 0; i < arrayObj.length; i++) {
System.out.print(arrayObj[i] + " ");
for (int j = 0; j < arrayObj[i].length; j++) {
System.out.print(arrayObj[i][j] + " ");
}
System.out.println();
}
}
}
class TestPrintTwoDimArray {
public static void main (String[] args) {
PrintTwoDimArray twoDim = new PrintTwoDimArray();
int [][] multiArray = new int [2][4];
multiArray = twoDim.createArray();
twoDim.printArray(multiArray);
}
}
我的输出如下:
似乎我的代码以某种方式调用了数组的toString 或hashcode 方法。想法?如何修改以仅打印值?
javac 和 java 版本 1.8.0
【问题讨论】:
-
这个字符串是多余的:System.out.print(arrayObj[i] + " ");
-
@nikis 我使用空字符串在值之间创建了一个空格。
-
@sedeh:这不是哈希码:它是存储对象的内存地址。