java-基礎-計算陣列的轉置(橫向輸出)
* 計算陣列的轉置
*/
class ArrayTransDemo{
public static void main(String[] args){
int[][] arr = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};
out(arr);
System.out.println("---------------");
arr = trans(arr);
out(arr);
//
int[][][] arrr = {{{1,2,3},{4,5,6},{7,8,9}},{{10,11,12},{13,14,15},{16,17,18}},{{19,20,21},{22,23,24},{25,26,27}}};
outHor(arrr);
}
//轉置
public static int[][] trans(int[][] arr){
//
for(int i = 0 ; i < arr.length - 1 ; i ++){
for(int j = i + 1 ; j < arr[i].length ; j ++){
int temp = arr[i][j];
arr[i][j] = arr[j][i] ;
arr[j][i] = temp ;
}
}
return arr ;
}
public static void out(int[][] arr){
for(int i = 0 ; i < arr.length ; i ++){
for(int j = 0 ; j < arr[i].length ; j ++){
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
//橫向輸出三維陣列
public static void outHor(int[][][] arr){
//迴圈行數,每個二維陣列的長度
for(int i = 0 ; i < arr[0].length ; i ++){
//輸出所有列
for(int j = 0 ; j < arr.length ; j ++){
//輸出每個層上的第i行的元素.
for(int k = 0 ; k < arr[j][i].length ; k ++){
System.out.print(arr[j][i][k] + "\t");
}
System.out.print(" | ") ;
}
System.out.println();
}
}
}