二维数组使用细节和注意事项

一维数组的声明方式有:   int[] x 或者 int x []

二维数组的声明方法有:int[ ] [ ] y 或者 int y [ ] [ ]  或者int [ ]  y [ ]

二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不同,eg :map [ ]  [ ]是一个二维数组

int map[ ] [ ] ={{1,2},{3,4,5}}  

map[0]是一个含有两个元素的一维数组,map[1]是一个含有三个元素的一维数组构成,我们也称为列数不等的二维数组;

 

杨辉三角案例:使用二维数组打印一个10行的杨辉三角

 1 public class YangHui{
 2     public static void main(String[] args){
 3         /*
 4         杨辉三角案列:使用二维数组打印一个10行杨辉三角;
 5       1
 6       1 1
 7       1 2 1
 8       1 3 3 1
 9       1 4 6 4 1
10       1 5 10 10 5 1    
11       分析:
12      1. 第一行有1个元素,第N行有N个元素
13      2.每一行的第一个元素和最后一个元素都是1
14      3.从第三行开始,对于非第一个元素和最后一个元素的元素值 arr[i][j]
15         arr[i][j] = arr[i-1][j]+arr[i-1][j-1];    
16         */
17       //定义一个里面有10个数组的二维数组;
18       int [][] yangHui= new int [10][];//只开辟了二维数组中一维数组有10个,而一维数组中的元素还没有开辟
19       for (int i = 0;i<yangHui.length ; i++) {//循环遍历二维数组中一维数组的个数;
20           //由于还没有开辟一维数组的空间,需要给一维数组开辟空间
21           yangHui[i] = new int [i+1];
22           //遍历给每个一维数组赋值,也就是对一维数组中的元素进行遍历
23           for (int j =0;j<yangHui[i].length ;j++ ) {
24               //每一行的第一个元素和最后一个元素都是1
25               if (j==0 || j == yangHui[i].length-1) {
26                   yangHui[i][j]=1;
27               }else{//中间的元素
28                   yangHui[i][j] = yangHui[i-1][j]+yangHui[i-1][j-1];
29               }
30           }    
31       }
32         //输出杨辉三角
33       for (int i = 0; i <yangHui.length ;i++ ) {
34           for (int j = 0; j<yangHui[i].length ;j++ ) {
35               System.out.print(yangHui[i][j]+" ");
36           }
37           System.out.println();
38       }
39       
40     }
41 }

 

posted @ 2022-02-21 16:17  捞月亮的渔夫  阅读(250)  评论(0)    收藏  举报