он просто не меняет значения, и непонятно почему. уже много часов голову ломаю, так как ответ который предоставила платформа к этой задаче не устраивает, изначально хотел чтобы свап работал на массиве любой размерности но почему-то он не работает
import java.util.Arrays;

public class Program {
    public static int[][] array;

    public static void main(String[] args) {
        array = new int[][]{
                {1, 2, 3, 4},
                {4, 5, 6, 7},
                {7, 8, 9, 0},
        };
        printArray();

        //напишите тут ваш код
        int temp;
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                temp = array[i][j];
                array[i][j] = array[array.length - (i + 1)][j];
                array[array.length - (i + 1)][j] = temp;
            }
        }
        printArray();
    }

    public static void printArray() {
        for (int[] row : array) {
            System.out.println(Arrays.toString(row));
        }
        System.out.println();
    }
}