如何在不使用循环的情况下在 java 中交换二维数组行?

How can i make 2d array rows swap in java without using loop?

我正在尝试使用此方法进行行交换,但我无法 do.can 有人可以帮助我吗?我需要在不使用循环的情况下用一种方法做到这一点。

     public static void swapRows(double[][] dblMatrix, int i, int j) {
    int temp = dblMatrix[0].length;
    for (int col=0; col<temp; col++){
      swap(dblMatrix, i, col, j, col);
      System.out.printf("%.1f",dblMatrix[i][j]);
    }
}
  public static void swap(double[][] dblMatrix, int i0, int j0, int i1, int j1) {
        double temp1 = dblMatrix[i0][j0];
        dblMatrix[i0][j0] = dblMatrix[i1][j1];
        dblMatrix[i1][j1] = temp1;
      }

不是很有用,但不用循环也很容易做到,但是你必须将所有变量作为参数传递给下一个函数调用。另请注意,如果没有 return 语句,堆栈将变得无限大。

你的第二个交换函数也非常无用,因为你不需要单独的函数来交换一些值。

public void swapRows(double[][] matrix, int row1, int row2, int start, int end) {
      double d = matrix[row1][start];
      matrix[row1][start] = matrix[row2][start];
      matrix[row2][start] = d;
      start++;
      if(start==end) {
          return;
      }
      swapRows(matrix, row1, row2, start, end);
  }