Java can';t将随机数分配给数组

Java can';t将随机数分配给数组,java,arrays,Java,Arrays,所以我在这里的代码有问题。我基本上想做的是给每个BC[0]分配一个值,然后给BC01[0]加1,给BC02[0]加2,对每个船都这样做。 (试图制造战列舰(高级)) 但我能打印出来的只是 [[I@7852e922 不管怎样,这是我的代码 public class dogs { public static int BC00 [] = {0,0}; public static int BC01 [] = {BC00[0],BC00[1]}; public static in

所以我在这里的代码有问题。我基本上想做的是给每个BC[0]分配一个值,然后给BC01[0]加1,给BC02[0]加2,对每个船都这样做。 (试图制造战列舰(高级))

但我能打印出来的只是

[[I@7852e922
不管怎样,这是我的代码

public class dogs {
    public static int BC00 [] = {0,0};
    public static int BC01 [] = {BC00[0],BC00[1]};
    public static int BC02 [] = {BC00[0],BC00[1]};
    public static int boat0[][] = {BC00, BC01, BC02}; //location cells boat[0][0]
    public static int BC10 [] = {BC01[0], BC01[1]};
    public static int BC11 [] = {BC01[0], BC01[1]};
    public static int BC12 [] = {BC01[0], BC01[1]};
    public static int boat1 [][] = {BC10, BC11, BC12};
    public static int BC20 [] = {BC02[0], BC02[1]};
    public static int BC21 [] = {BC02[0], BC02[1]};
    public static int BC22 [] = {BC02[0], BC02[1]};
    public static int boat2 [][] = {BC20, BC21, BC22};
    public int NH; // Number of hits
    public static int allBoats [][][] = {boat0, boat1, boat2};
    public static int rand;
    public static int n = 0;
    public static void main(String[] args) {

        for (int x = 0; x <= 2; x++) {
            Random gen = new Random();

            rand = gen.nextInt(6) + 1;
            allBoats[x][0][0] = (int) rand;
            while(n <= 2) { //give boatCells locations

                allBoats[n][1][1] = allBoats[n][1][1] + 1;
                allBoats[n][2][1] = allBoats[n][2][1] + 2;
                n++;
            } // end of while loop
        } // end of For loop
        System.out.println(boat0);
    } // end of public static void main(String[] args)
} // end of dogs class
公共级犬{
公共静态int BC00[]={0,0};
公共静态int BC01[]={BC00[0],BC00[1]};
公共静态int BC02[]={BC00[0],BC00[1]};
公共静态int-boat0[][]={BC00,BC01,BC02};//位置单元格boat[0][0]
公共静态int BC10[]={BC01[0],BC01[1]};
公共静态int BC11[]={BC01[0],BC01[1]};
公共静态int BC12[]={BC01[0],BC01[1]};
公共静态int-boat1[][]={BC10、BC11、BC12};
公共静态int BC20[]={BC02[0],BC02[1]};
公共静态int BC21[]={BC02[0],BC02[1]};
公共静态int BC22[]={BC02[0],BC02[1]};
公共静态int-boat2[][]={BC20、BC21、BC22};
public int NH;//点击次数
公共静态int所有船只[][]={boat0、boat1、boat2};
公共静态整数;
公共静态int n=0;
公共静态void main(字符串[]args){
对于(int x=0;x使用

而不是

System.out.println(boat0);

正如@ChristianKuetbach所建议的,重要的是要理解,在Java中,
toString()
-Mothod通常并不意味着“生成用户可读字符串的方法”.大多数班级都有印刷品ClassName@HashCode.

您可能应该用您正在使用的特定编程语言对此进行标记。可能的重复项请看一看,因为
n
是一个静态字段,for循环的第一次迭代是唯一一次输入
while
的循环。此外,您不需要继续重新实例化Random(事实上这是一个非常糟糕的主意)。gen.nextInt()也不需要临时int(或cast)。tostring()不是用于创建“用户友好”的输出(如下面的答案所述)。但我对您的代码有一些其他注释:所有变量都是pulic(在数据封装的情况下这是不好的)您在所有块的末尾写注释(这也很糟糕(在我看来),因为如果您忘记更改一个vblock,这些注释将变得错误)。您应该解释,在Java中,toString()--Mothod并不意味着“生成用户可读字符串的Mothod”。大多数类打印ClassName@HasCode.
System.out.println(boat0);