在java中打印二维对象数组
我有一个包含对象的二维数组。有人知道我如何打印这个数组吗?因为当我使用以下代码时,不会打印对象的包含,而是打印符号在java中打印二维对象数组,java,Java,我有一个包含对象的二维数组。有人知道我如何打印这个数组吗?因为当我使用以下代码时,不会打印对象的包含,而是打印符号 Humans [][]cells= new Humans [7][7]; for (int row=0; row<cells.length; row++) { for (int col=0; col<cells[row].length; col++) { System.out.print(" " + cells[row][co
Humans [][]cells= new Humans [7][7];
for (int row=0; row<cells.length; row++) {
for (int col=0; col<cells[row].length; col++) {
System.out.print(" " + cells[row][col]);
}
}
Humans[][]细胞=新人类[7][7];
对于(int row=0;row,您需要使用toString
,并确保2d数组中的实例适当地实现它
在你内心最深处的循环中
Human current = cells[row][col];
// possibly do a null check
System.out.print(current.toString());
确保在Human
上实现toString
,您需要使用toString
,并确保2d数组中的实例适当地实现它
在你内心最深处的循环中
Human current = cells[row][col];
// possibly do a null check
System.out.print(current.toString());
确保在Human
上实现toString
,覆盖humans类中的toString()方法,并打印想要打印的内容。然后使用
Arrays.toString(cells);
打印数组。重写humans类中的toString()方法,并打印要为humans打印的内容。然后使用
Arrays.toString(cells);
打印数组。您需要重写Human类中的toString方法,以打印所需类的任何详细信息(我假设名称和内容),然后替换为:
cells[row][col]
你应该写:
cells[row][col].toString()
您需要重写Human类中的toString方法,以打印所需类的任何详细信息(我假设名称和内容),然后代替:
cells[row][col]
你应该写:
cells[row][col].toString()
您可以重写Humans toString()吗
编辑:
这里有很好的参考
你能覆盖人类的toString()吗
编辑:
这里有很好的参考
您需要覆盖类Humans中的toString以满足您的需要。您需要覆盖类Humans中的toString以满足您的需要。如果要将toString()包含在字符串连接中,您需要将其添加到Humans对象中
public String toString() {
return "Name: " + name + " age: " + age + " shoe size: " + shoeSize;
}
如果要将toString()包含在字符串连接中,则需要将其添加到Humans对象中
public String toString() {
return "Name: " + name + " age: " + age + " shoe size: " + shoeSize;
}
首先,需要重写Humans对象的toString()方法,以返回表示Humans实例内容的字符串
接下来,您可能希望在内部for循环完成后打印新行,否则您将只在一行上打印整个2D数组的全部内容(除非这是您在这里要做的)。首先,您需要覆盖toString()方法返回表示人员实例内容的字符串
接下来,您可能希望在内部for循环完成后打印新行,否则您将在一行上打印整个2D数组的全部内容(除非这是您在这里要做的).正如@hvgotcodes所说,您需要确保您的Human
类实现了toString
方法。例如,如果一个人只包含一个数字(此人的年龄),最基本的情况可能是:
class Human {
int age;
public Human(int age){
this.age = age;
}
@Override
public String toString(){
return "[Human: age :=" + age + "]"; //or whatever's appropriate!
}
}
要打印这些对象的二维阵列,可以编写:
for(int i = 0; i < cells.length; i++){
for(int j = 0; j < cells[i].length; j++){
System.out.print(cells[i][j]); //invokes toString method in Human..
if(j < cells[i].length -1)
System.out.print(", ");
}
System.out.println();
}
}
for(int i=0;i
正如@hvgotcodes所说,您需要确保您的Human
类实现了toString
方法。例如,如果一个人只包含一个数字(此人的年龄),最基本的可能是这样的:
class Human {
int age;
public Human(int age){
this.age = age;
}
@Override
public String toString(){
return "[Human: age :=" + age + "]"; //or whatever's appropriate!
}
}
要打印这些对象的二维阵列,可以编写:
for(int i = 0; i < cells.length; i++){
for(int j = 0; j < cells[i].length; j++){
System.out.print(cells[i][j]); //invokes toString method in Human..
if(j < cells[i].length -1)
System.out.print(", ");
}
System.out.println();
}
}
for(int i=0;i
您能通过一个示例输出吗?常规设置看起来不错,但如果不查看您的.toString(),我们就无法确切地知道这将做什么
方法的Human
或者如果它没有在Human
中定义,那么它是从何处继承的。您能通过一个示例输出吗?常规设置看起来不错,但如果不查看您的.toString()我们就无法确切知道它将做什么
人类的方法
或者如果在人类中未定义,则从何处继承。