沈汉学

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组转置,就是将打印的数组的列和行进行位置对换。

我们就可以用两个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     }

 

输出结果:

 

posted on 2017-12-23 15:19  沈汉学  阅读(2751)  评论(0编辑  收藏  举报