java multi-dimensional array transposing

后端 未结 11 2179
谎友^
谎友^ 2020-12-10 11:42

I have a row-based multidimensional array:

/** [row][column]. */
public int[][] tiles;

I would like to transform this array to column-based

11条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-10 12:05

    Here is my 50 cents: a utility method and test to transponse multidimensional array (for doubles in my case):

    /**
      * Transponse bidimensional array.
      *
      * @param original Original table.
      * @return Transponsed.
      */
    public static double[][] transponse(double[][] original) {
    
    double[][] transponsed = new double
        [original[0].length]
        [original.length];
    
      for (int i = 0; i < original[0].length; i++) {
    
        for (int j = 0; j < original.length; j++) {
    
          transponsed[i][j] = original[j][i];
        }
      }
    
      return transponsed;
    }
    
    
    @Test
    void aMatrix_OfTwoDimensions_ToBeTransponsed() {
    
      final double[][] original =
        new double[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
    
      double[][] transponsed = Analysis.transponse(original);
    
      assertThat(transponsed[1][2], is(equalTo(10)));
    }
    

提交回复
热议问题