我一直绞尽脑汁想要一些非常简单的东西,因为我没有看到它在任何地方得到回答(或者我在搜索时非常糟糕)。
我想创建一个对称的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
答案 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;
}
}