JAVA實現不定長度二維陣列的轉置
阿新 • • 發佈:2019-01-24
//實現不定長度二維陣列的轉置
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();
}
}