Если я вас правильно понял, вот что вы хотите:
public class Matrix {
private final int[][] array;
private final int size1;
private final int size2;
Matrix(int size1, int size2) {
this.size1 = size1;
this.size2 = size2;
this.array = new int[size1][size2];
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
for (int[] arr: array)
builder.append(Arrays.toString(arr) + "\n");
return "Matrix{" +
"array=\n" + builder +
'}';
}
Matrix(int[][] color) {
this.size1 = color.length;
this.size2 = color[0].length;
this.array = new int[size1][size2];
for (int row = 0; row < size1; row++) {
for (int column = 0; column < size2; column++) {
this.array[row][column] = color[row][column];
}
}
}
public Matrix flipVertically() {
int start = 0, end = size1 - 1;
while (start < end) {
int[] tmp = array[start];
array[start] = array[end];
array[end] = tmp;
start++;
end--;
}
return this;
}
public static void main(String[] args) {
Matrix matrix = new Matrix(new int[][]{{1,2,3}, {4,5,6}, {7,8,9}});
System.out.println(matrix.flipVertically());
matrix = new Matrix(new int[][]{{1,2,3}, {4,5,6}, {7,8,9}, {10,11,12}});
System.out.println(matrix.flipVertically());
matrix = new Matrix(new int[][]{{1}});
System.out.println(matrix.flipVertically());
matrix = new Matrix(new int[][]{{1},{2},{3}});
System.out.println(matrix.flipVertically());
}
Вывод:
Matrix{array=
[7, 8, 9]
[4, 5, 6]
[1, 2, 3]
}
Matrix{array=
[10, 11, 12]
[7, 8, 9]
[4, 5, 6]
[1, 2, 3]
}
Matrix{array=
[1]
}
Matrix{array=
[3]
[2]
[1]
}
Чтобы ответить на ваши вопросы:
- Как уже упоминалосьвыше вы создаете новый экземпляр класса Matrix, а не массив.Кроме того, это
newArray[row][column]=array[size1][size2];
не то, как вы можете скопировать массив в Java, хотя я не думаю, что вам вообще нужно его копировать - посмотрите мою реализацию.В любом случае, если вы хотите скопировать ваш массив, пожалуйста, обратитесь к этой копии двумерного массива в java - Переменная типа матрицы, которую вы можете создать следующим образом:
Matrix matrix = new Matrix(new int[][]{{1,2,3}, {4,5,6},
{7,8,9}});
.В моем коде я просто возвращаю this
witch - это ссылка на себя.
PS Советы по улучшению вашего кода: добавьте методы получения и установки, сделайте ваш конструктор общедоступным, если нет причин сохранять его friendly
, проверьте угловые случаи, когда в конструктор передан пустой массив ....