1. 程式人生 > >JAVA實現不定長度二維陣列的轉置

JAVA實現不定長度二維陣列的轉置

//實現不定長度二維陣列的轉置

public static void transposition_Arrays2D()

{
/**定義要用於轉置的二維陣列**/
int arr2D[][] =
{
{ 1, 2, 3 },
{ 4, 5, 6, 11 },
{ 7, 8, 9 } };


/**構造結果新二維陣列用於存放轉置結果**/
// 而構造二維陣列可以為維度來進行,不一定是一個矩陣,即每一行的長度不一定相同
int second = 0;
// 取出二維中最大的陣列長度
for (int temp[] : arr2D)
{
second = second > temp.length ? second : temp.length;
}
int result_arr[][] = new int[second][];// 先實現第一維
// 再實現第二維,實際上二維的長度應該是一樣的
for (int i = 0; i < second; i++)
{
result_arr[i] = new int[arr2D.length];
}


/*****輸出用於轉置的二維陣列*******/
for (int x[] : arr2D)
{
for (int e : x)
{
System.out.print(e + " ");
}
System.out.println();
}
System.out.println();


/** 進行元素倒置  **/
for (int i = 0; i < arr2D.length; i++)
{
for (int j = 0; j < arr2D[i].length; j++)
{
result_arr[j][i] = arr2D[i][j]; // 轉置核心
}
}


/** 列印轉置後的結果:對於缺少的元素,只能預設打印出0 **/
for (int x[] : result_arr)
{
for (int e : x)
{
System.out.print(e + " ");
}
System.out.println();
}
}