Java數組轉置


數組轉置,就是將打印的數組的列和行進行位置對換。

我們就可以用兩個for循環遍歷數組,然后交換arr[i][j]與arr[j][i]

 1 public class Demo{
 2     public static void main(String[] args){
 3         int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
 4 
 5         for(int i = 0; i < arr.length; i++){
 6             for(int j = 0; j < arr[i].length; j++){
 7                 System.out.print(arr[i][j] + " ");
 8             }
 9             System.out.println();
10         }
11         
12         System.out.println();
13         System.out.println();
14 
15         int temp = 0;
16 
17         for(int i = 0; i < arr.length; i++){
18             for(int j = 0; j < i; j++){
19                 temp = arr[i][j];
20                 arr[i][j] = arr[j][i];
21                 arr[j][i] = temp;
22             }
23         }
24         
25         for(int i = 0; i < arr.length; i++){
26             for(int j = 0; j < arr[i].length; j++){
27                 System.out.print(arr[i][j] + " ");
28             }
29             System.out.println();
30         }
31         
32     }
33 }

輸出結果:

注意:在進行轉置是,只需轉置一次,否則轉置兩次會沒有變化

以上方法只適用於正方形矩陣,下面介紹一種矩形方陣的方法.

 

 1     public static void main(String[] args){
 2         char[][] chss = new char[][]{
 3             {'a','b','c','d'},
 4             {'e','f','g','h'}
 5         };
 6         char[][] temp = new char[chss[0].length][chss.length];
 7         
 8         for(int i = 0; i < chss.length; i++){
 9             for(int j = 0; j < chss[i].length; j++){
10                 temp[j][i] = chss[i][j];
11             }
12         }
13 
14         for(int i = 0; i < temp.length; i++){
15             for(int j = 0; j < temp[i].length; j++){
16                 System.out.print(temp[i][j]);
17             }
18             System.out.println();
19         }
20 
21     }

 

輸出結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM