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     }

 

输出结果:

 

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

转载于:https://www.cnblogs.com/shenhx666/p/8093504.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值