创建对称的2D数组

时间:2017-03-04 16:25:59

标签: java arrays

我一直绞尽脑汁想要一些非常简单的东西,因为我没有看到它在任何地方得到回答(或者我在搜索时非常糟糕)。

我想创建一个对称的2D数组,填充从1到100的随机数字......这是我到目前为止所拥有的

int n = 3;         int rangeOfWeights = 100;

    double[][] array = new double[n][n];
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            array[i][j] = rand.nextInt((rangeOfWeights)+1);         
        }
    }

目前,这样的结果如下:

44 45 32 
9 31 53 
25 48 74 

实际上我想要的结果是:

0 34 32
34 0 23
32 23 0

1 个答案:

答案 0 :(得分:2)

根据您的定义,您正在尝试创建array[i][j] == array[j][i]的二维数组。您可以使用一对嵌套循环,其中一个迭代到数组的大小,另一个迭代到外部数组的计数器,并在每次迭代中设置两个对称值的值:

double[][] array = new double[n][n];
for(int i = 0; i < n; i++) {
    for(int j = 0; j < i; j++) {
        int value = rand.nextInt((rangeOfWeights)+1);         
        array[i][j] = value;
        array[j][i] = value;
    }
}