制作二维数组 Java
Making 2d Array Java
假设我有一个像
这样的一维数组
int[] array1d = {1,2,3}
我想将其转换为 2D array2d[3][2]
,其中包含 2 个不同的 int。例如:
1 2
1 3
2 3
目前我做了这个
int[] array1d = new int[3];
array1d[0] = 1;
array1d[1] = 2;
array1d[2] = 3;
int[][] array2d = new int[3][2];
for (int i=0; i<3; i++) {
for (int j=0; j<2; j++) {
array2d[i][j] = array1d[j];
}
}
但它只给我 1,2
。
一般来说,您想要的是 combinations(在您的示例中,大小为 2,取自 3 大小的数组)。因此,顺序无关紧要(例如 [1, 2] 等于 [2, 1])。
如评论中所述,您应该考虑更通用的解决方案,并且可以找到 here。除了实际代码,您还可以找到来自 Codereview 社区的代码评论。
我使用随机 numbers.try 这个代码
` 导入 java.util.Random;
public final class RandomInteger {
public static void main(String... aArgs){
Random randomGenerator = new Random();
int[] array1d = new int[3];
array1d[0] = 1;
array1d[1] = 2;
array1d[2] = 3;
int[] array2d = new int[3][2];
int randomInt;
for (int i=0; i<3; i++) {
for (int j=0; j<2; j++) {
randomInt = randomGenerator.nextInt(3);
array2d[i][j] = array1d[randomInt];
}
}
}
}
`
假设我有一个像
这样的一维数组int[] array1d = {1,2,3}
我想将其转换为 2D array2d[3][2]
,其中包含 2 个不同的 int。例如:
1 2
1 3
2 3
目前我做了这个
int[] array1d = new int[3];
array1d[0] = 1;
array1d[1] = 2;
array1d[2] = 3;
int[][] array2d = new int[3][2];
for (int i=0; i<3; i++) {
for (int j=0; j<2; j++) {
array2d[i][j] = array1d[j];
}
}
但它只给我 1,2
。
一般来说,您想要的是 combinations(在您的示例中,大小为 2,取自 3 大小的数组)。因此,顺序无关紧要(例如 [1, 2] 等于 [2, 1])。
如评论中所述,您应该考虑更通用的解决方案,并且可以找到 here。除了实际代码,您还可以找到来自 Codereview 社区的代码评论。
我使用随机 numbers.try 这个代码
` 导入 java.util.Random;
public final class RandomInteger {
public static void main(String... aArgs){
Random randomGenerator = new Random();
int[] array1d = new int[3];
array1d[0] = 1;
array1d[1] = 2;
array1d[2] = 3;
int[] array2d = new int[3][2];
int randomInt;
for (int i=0; i<3; i++) {
for (int j=0; j<2; j++) {
randomInt = randomGenerator.nextInt(3);
array2d[i][j] = array1d[randomInt];
}
}
}
}
`