2D数组和deepToString如何工作?

时间:2018-06-05 15:19:43

标签: java arrays multidimensional-array

import java.util.Arrays;

public class main {

    public static void main (String[] args ) {
        int rand = (int)Math.random()*17;
        int[][] output = array(rand);
        //System.out.println(Arrays.deepToString(output));
    }


    public static int[][] array(int n)  { //btw n is y/height
        int x = (int)Math.pow(2, n-1); //# of col
        int max = (int)Math.pow(2, n) - 1;

        int [][] out = new int[n][x];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < x; j++) {
                out[i][j] = (int) (Math.random() * (max + 1));
            }
        }
        return out;

    }
}

我正在学习如何编码,表兄给了我他们的旧笔记本电脑,我在这里和那里找到了一些小的java文件。这个被称为&#34; itsmagic.java&#34;但我真的不明白目的是什么?

根据我的理解,似乎我们正在创建某种2D阵列然后是什么?我知道deepToString应该用于将多维数组转换为字符串,但这是如何工作的?为什么要注释掉?

2 个答案:

答案 0 :(得分:0)

我从您的代码中理解的是:

- 从0到17选择一个随机的int。

- 设置x = 2 ^(n-1)

- 设置max = 2 ^ n

创建双重输入标签尺寸n * x

- 使用0到最大值之间的随机数填充每个案例

所以结果是维度[0到17] [2 ^(0到16)]的双重输入标签,填充0到2 ^(0到17)之间的数字

答案 1 :(得分:0)

Arrays.deepToString()用于单维或多维数组,它通常用于多维数组,因为它可以清楚地输出每个数组。

您将能够在示例中输出第一个和第二个“输出”数组。

如果您运行测试并手动添加数组,您将看到它将两个数组一起打印而不是仅显示第一个维度。