как добавить номера двумерного массива в массив - PullRequest
0 голосов
/ 06 марта 2019

На данный момент у меня 8 номеров 2D array например arrayInput1 до arrayInput8. Таким образом, теперь данные из 2D-массива равны 1 и 0, и пусть размер массива установлен равным 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 ]

0 голосов
/ 06 марта 2019

Вы должны инициализировать его напрямую: int[] data = {0,1,0,1,0,1,0,1}; и int[][] data2d = {data, data, data, data, data, data, data, data}

0 голосов
/ 06 марта 2019

Используйте StringBuilder (или аналогичный) для построения строки из значений int и добавления ее в массив String.Я не был уверен насчет размеров массива, поэтому вместо этого использовал две константы.

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();
   }
}
0 голосов
/ 06 марта 2019

У вас есть данные пикселей в восьми битовых плоскостях. Вы хотите объединить их в одну плоскость из восьмибитных целочисленных пикселей. Вот пример того, как это сделать:

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, который содержит наименее значимые биты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...