首页 > 代码库 > foreach遍历数组、数组的转置与方阵的迹

foreach遍历数组、数组的转置与方阵的迹

 1 public class Copy1 {
 2 
 3     public static void main(String[] args) {
 4         array1();                                        //如果不初始化元素,默认为0
 5         int [][] a = new int [][]{{1,3,2,5,7},{5,9,3,4,2}};
 6         int [][] b = new int [a[1].length][a.length];
 7         for(int i=0;i<b.length;i++){                    //数组的转置
 8             for(int j =0;j<b[i].length;j++){
 9                 b[i][j]=a[j][i];
10             }
11         }
12         printArray(a);                               //调用方法遍历a
13         System.out.println();                    
14         System.out.println();
15         printArray(b);                    //遍历b
16         System.out.println();
17         for(int []n:b){                              //foreach用法,int[]n为零时变量
18             for(int m:n){                            //int m零时变量
19             System.out.print(m+" ");
20             }
21             System.out.println();
22         }
23             System.out.println();
24         
25         
26         int [][] c=new int[][]{{1,2,3},{4,5,6},{7,8,9}};    //创建数组
27         printArray(c);                                        //调用方法遍历数组
28         System.out.println();
29         System.out.println();
30         int [][] d=new int[c[0].length][c.length];            //d与c行列转换(d叫做转置后的c)
31         for(int i=0;i<d.length;i++){                        //遍历                        
32             for(int j=0;j<d[i].length;j++){
33                 d[i][j]=c[j][i];
34                 System.out.print(d[i][j]+" ");
35             }
36             System.out.println();
37         }
38         System.out.println();
39         System.out.println();
40         
41         
42         //在方阵数组中d[i][j],当i==j时的所有元素的和叫做方阵的迹
43         {
44             int n=0;
45             for(int i=0;i<d.length;i++){                    
46                 for(int j=0;j<d[i].length;j++){
47                     if(i==j){
48                         n+=d[i][j];                            //当i==j时
49                     }    
50                 }        
51             }
52             System.out.println(n);
53         }
54     }
55     
56     
57 
58     private static void printArray(int[][] a) {                //封装遍历数组方法
59         for(int i=0;i<a.length;i++){
60             for(int j=0;j<a[i].length;j++){
61                 System.out.print(a[i][j]+" ");
62             }
63         System.out.println();
64         }
65          
66     }
67 
68     private static void array1() {                    //默认初始化元素为0
69         int [][] a= new int[3][4];
70         for(int i=0;i<a.length;i++){
71             for(int j=0;j<a[i].length;j++){
72                 System.out.print(a[i][j]+" ");
73             }
74             System.out.println();
75         }
76     }
77 
78 }

 

foreach遍历数组、数组的转置与方阵的迹