java - 使用嵌套 for 循环填充多维数组

标签 java for-loop multidimensional-array control-flow

我有四个数组,每个数组有 3 个(但可以更多)元素。我试图用每个元素的所有可能组合填充 4 x aa.length*bb.length*cc.length*dd.length 数组。我试图用嵌套的 for 循环来做到这一点,但我的逻辑是错误的。我不确定最有效的方法是什么。 这就是我的咖啡因饥饿的大脑到目前为止所想出的。

String[] AA={DDDD, HHHH, ZZZZ};
String[] BB={DDDD, HHHH, ZZZZ};
String[] CC={DDDD, HHHH, ZZZZ};
String[] DD={DDDD, HHHH, ZZZZ};


String[][] 2Darray = new String[4][AA.length*BB.length*CC.length*DD.length];

for (int i = 0; i <AA.length; i++){

  for (int j = 0; j < BB.length; j++){

    for (int k = 0; k < CC.length; k++){

      for (int L = 0; L < DD.length; L++){

        2Darray[3][i+j+k+L] = DD[L]; 
        2Darray[2][i+j+k] = CC[k];
        2Darray[1][i+j] = BB[j];
        2Darray[0][i] = AA[i];

      }
    }
  }
}

打印输出如下所示:

DDDD DDDD DDDD DDDD
HHHH DDDD DDDD DDDD
ZZZZ DDDD DDDD DDDD
null HHHH DDDD DDDD
null ZZZZ DDDD DDDD
null null HHHH DDDD
null null ZZZZ DDDD
null null null HHHH
null null null ZZZZ
null null null null
null null null null
null null null null
...etc

有什么更好的方法来解决这个问题?

最佳答案

试试这个

    String[] AA = {"DDDD", "HHHH", "ZZZZ"};
    String[] BB = {"DDDD", "HHHH", "ZZZZ"};
    String[] CC = {"DDDD", "HHHH", "ZZZZ"};
    String[] DD = {"DDDD", "HHHH", "ZZZZ"};


    String[][] result = new String[4][AA.length * BB.length * CC.length * DD.length];

    int row = 0;
    for (int i = 0; i < AA.length; i++) {

        for (int j = 0; j < BB.length; j++) {

            for (int k = 0; k < CC.length; k++) {

                for (int L = 0; L < DD.length; L++) {

                    result[3][row] = DD[L];
                    result[2][row] = CC[k];
                    result[1][row] = BB[j];
                    result[0][row] = AA[i];
                    System.out.println(result[0][row] + " " +result[1][row] + " " +result[2][row] + " " +result[3][row]);
                    row++;
                }
            }
        }
    }

和输出

DDDD DDDD DDDD DDDD
DDDD DDDD DDDD HHHH
DDDD DDDD DDDD ZZZZ
DDDD DDDD HHHH DDDD
DDDD DDDD HHHH HHHH
DDDD DDDD HHHH ZZZZ
DDDD DDDD ZZZZ DDDD
...

关于java - 使用嵌套 for 循环填充多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12011832/

相关文章:

python - 从共享内存(多处理)的数组缓冲区形成 numpy 数组失败

PHP:删除多维数组中的空数组字符串

php - 根据值从多维数组中删除元素

java - 正则表达式不适用于密码

java - 为 jQuery 选择哪个 Java Web 框架?

C++ Big for循环在它应该之前随机停止

r - 解决约瑟夫斯排列

python-3.x - 将每个数字/数字乘以递增值

java - 连接表与元数据的 Hibernate 映射

java - 新的 GUI 屏幕构建、设计和现有遗留代码的增强