制作2d阵列Java

时间:2016-02-25 18:33:58

标签: multidimensional-array combinations

说我有像

这样的一维数组
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

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];
                                   }
                            }

                                              }
                                    }    

`