说我有像
这样的一维数组int[] array1d = {1,2,3}
我想将其转换为2D array2d[3][2]
,其中包含2个不同的int。 E.g:
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
。
答案 0 :(得分:1)
一般来说,你想要的是combinations(在你的例子中,大小为2,取自3个大小的数组)。因此,顺序无关紧要(例如[1,2]等于[2,1])。
正如评论中已经指出的那样,您应该考虑更通用的解决方案,并且可以找到一个here。除了实际代码,您还可以从Codereview社区找到代码评论。
答案 1 :(得分:0)
我使用随机数来完成此操作。此代码
`import 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];
}
}
}
}
`