Транспонирование многомерного массива java

У меня есть многомерный массив на основе строк:

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

Я хотел бы преобразовать этот массив в массив на основе столбцов, как показано ниже:

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

... Но я действительно не не знаю, с чего начать

15
задан Antti Kolehmainen 7 December 2011 в 21:18
поделиться

2 ответа

import java.util.*;

public class TestClass {

    public static void main(String args[] ) throws Exception {

        Scanner in=new Scanner(System.in);

        int isize=in.nextInt();
        int jsize=in.nextInt();
        int arr[][]=new int[isize][jsize];
        int array[][]=new int[jsize][isize];
        for(int i=0;i<isize;i++) {
            for(int j=0;j<jsize;j++) {
                arr[i][j]=in.nextInt();
            }
            System.out.println("\n");
        }

        for(int n=0;n<arr[0].length;n++) {
            for(int m=0;m<arr.length;m++) {
                array[n][m]=arr[m][n];
                System.out.print(array[n][m]+" ");
            }
            System.out.print("\n");
        }
    }
}
-1
ответ дан 1 December 2019 в 02:25
поделиться

Используйте эту функцию (строка замены интервалом при необходимости). Это берет матрицу в качестве массива строк и возвращает новую матрицу, которая является транспонированием. Это проверяет на пограничный случай пустого массива, также. Никакая печать.

private String[][] transposeTable(String[][] table) {
    // Transpose of empty table is empty table
    if (table.length < 1) {
        return table;
    }

    // Table isn't empty
    int nRows = table.length;
    int nCols = table[0].length;
    String[][] transpose = new String[nCols][nRows];

    // Do the transpose
    for (int i = 0; i < nRows; i++) {
        for (int j = 0; j < nCols; j++) {
            transpose[j][i] = table[i][j];
        }
    }

    return transpose;
}
0
ответ дан 1 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: