有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何向数组中添加2D数组的数目

现在,我有8个2D array,例如arrayInput1arrayInput8。 现在2D数组的数据是10,让我们将数组的大小设置为25

 for(int a=0; a<5; a++){
     for(int b=0; b<4; b++){
         arrayInput1[a][b] //----> The result here is 0
         arrayInput2[a][b] //----> The result here is 1
         arrayInput3[a][b] //----> The result here is 0
         arrayInput4[a][b] //----> The result here is 1
         arrayInput5[a][b] //----> The result here is 0
         arrayInput6[a][b] //----> The result here is 1
         arrayInput7[a][b] //----> The result here is 0
         arrayInput8[a][b] //----> The result here is 1
     }
 }//end of nested for loops

因此,这些arraiInput的结果将得到01010101。然后我想将它们存储在array中。因此array的第一个索引将打印01010101

所以问题是如何做到这一点


共 (3) 个答案

  1. # 1 楼答案

    在八位平面上有像素数据。你想把它们合并成一个八位整数像素的平面。下面是一个如何做到这一点的例子:

    int newPixels[][] = 
        new int[arrayInput1.length][arrayInput1[0].length];
    
    for(int a=0; a<arrayInput.length; a++){
        for(int b=0; b<arrayInput1[0].length; b++){
             newPixels[a][b] =
             arrayInput1[a][b] * 128 +
             arrayInput2[a][b] * 64 +
             arrayInput3[a][b] * 32 +
             arrayInput4[a][b] * 16 +
             arrayInput5[a][b] * 8 +
             arrayInput6[a][b] * 4 +
             arrayInput7[a][b] * 2 +
             arrayInput8[a][b];
        }
    }
    

    在这里,我假设arrayInput1持有合并像素中应该成为最高有效位的位,arrayInput2持有次高有效位,依此类推,直到arrayInput8持有最低有效位

  2. # 2 楼答案

    使用StringBuilder(或类似工具)从int值构建字符串,并将其添加到字符串数组中。我不确定数组的大小,所以我使用了两个常量

    String[][] result = new String[ROW_SIZE][COLUMN_SIZE];
    for(int a = 0; a < ROW_SIZE; a++){
       for(int b = 0; b < COLUMN_SIZE; b++){
          StringBuilder builder = new StringBuilder(8);        
          builder.append(arrayInput1[a][b]);
          builder.append(arrayInput1[a][b]); 
          builder.append(arrayInput1[a][b]);
          builder.append(arrayInput2[a][b]);
          builder.append(arrayInput3[a][b]);
          builder.append(arrayInput4[a][b]);
          builder.append(arrayInput5[a][b]);
          builder.append(arrayInput6[a][b]);
          builder.append(arrayInput7[a][b]);
          builder.append(arrayInput8[a][b]);
          result[a][b] = builder.toString();
       }
    }
    
  3. # 3 楼答案

    您应该直接初始化它: int[] data = {0,1,0,1,0,1,0,1};int[][] data2d = {data, data, data, data, data, data, data, data}