Если вы действительно требуют 2-мерный массив, вы можете легко преобразовать 2-мерный массив в одномерный массив для передачи между процессами следующим образом:
public boolean[] toOneDimension(boolean[][] input){
boolean[] output = new boolean[input.length * input[0].length];
for(int i = 0; i < input.length; i++){
for(int j = 0; j < input[i].length; j++){
output[i*j] = input[i][j];
}
}
return output;
}
, которые вы можете построить обратно в 2-мерный массив, как так:
public boolean[][] toTwoDimensions(int dimensions, boolean[] input){
boolean[][] output = new boolean[input.length/dimensions][dimensions];
for(int i = 0; i < input.length; i++){
output[i/dimensions][i % dimensions] = input[i];
}
return output;
}
затем использовать так:
public static void main(String[] args){
int size = 10;
Random rand = new Random();
Tester tester = new Tester(); //example code holder
boolean[][] value = new boolean[size+1][size];
for(int i = 0; i < size+1; i++){
for(int j = 0; j < size; j++){
value[i][j] = rand.nextBoolean();
}
}
boolean [][] output = tester.toTwoDimensions(size, tester.toOneDimension(value));
for(int i = 0; i < size+1; i++){
for(int j = 0; j < size; j++){
assert value[i][j] == output[i][j];
}
}
}
Единственное требование состоит в том, чтобы вам нужно было знать размер вашего массива, прежде чем вы его сплющили.
Вы знаете точные размеры вашего 2-мерного булева? –
Да, в этом случае это матрица 3x3, но в будущем я бы хотел, чтобы она была динамичной. – SolidSnake4444