二维数据以及杨辉三角,第二天笔记!!

先写一个简单的二维数组吧!

1 2 3

4 5 6

7 8 9

public class Arr1{       public static void main(String[] args){       int arr[][] = {{1,2,3},{4,5,6},{7,8,9}};       for(int i = 0;i<arr.length;i++){       for(int j = 0;j<arr[i].length;j++){              System.out.print(arr[i][j]+"\t");       }       System.out.println();       }       }       }

当我访问arr[1][1]时,我得到的结果是5

二维数组的使用:配合二维数组的图食用

动态初始化:

类型[][] 数组名 = new 类型[大小][大小];     int [][] arr = new int[3][5];//写了一个3行5列的二维数组,3行5列指数据空间【可以理解为arr二维数组里有3个一维数组,每个一维数组有5个元素】

动态初始化2:

先声明:类型 数组名[][]; 再开辟空间:数组名 = new int[大小][大小]; //赋值有默认值,比如int类型就是0

使用方式3:列数不确定

1

2  2

3  3  3

int arr[][];arr = new int[3][];//创建了二维数组,但是只确定了一维数组的个数(3),并没有给一维数组开辟空间【不确定一维数组里元素的个数】for(int i = 0;i<arr.length;i++){   arr[i] = new int[i+1];//arr[i]是二维数组的元素,也就是下标为i的一维数组,指为下标为i的这个一维数组开辟i+1的空间   for(int j = 0;j<arr[i].length;j++){//遍历一维数组   arr[i][j] = i+1;   System.out.print(arr[i][j]+"\t");   }   System.out.println();}

二维数组在内存中是怎样的?

二维数组不同于一维数组,一维数组是是指向地址,地址指向空间,二维数组的空间是一维数组的地址,后由一维数组的地址指向空间

图片来自于b站韩老师

二维数组的细节:

1.一维数组的声明方式

int[] x 或者 int x[]

二维数组的声明方式

int[][] y 或者 int[]y[] 或者 int y[][]

2.二维数组实际上是多个一维数组组成的,它的各个一维数组长度可以相同也可以不同。

例:int arr[] = {{1,22,3}{1}};arr[0]是一个含有三个元素的一维数组,arr[1]是一个含有一个元素的一维数组,这种二维数组称为列数不等的二维数组。

打印一个10行的杨辉三角吧!

int arr[][];arr = new int[10][];for(int i =0;i<arr.length;i++){     arr[i] = new int[i+1];     for(int j = 0;j<arr[i].length;j++){     if(j==0 || j==arr[i].length-1){//每一行的第一个元素与最后一个元素都是1     arr[i][j] = 1;     }else{     arr[i][j] = arr[i-1][j] + arr[i-1][j-1];//中间的元素等于上一行同一列这个元素加上上一行前一列的元素     }     System.out.print(arr[i][j]+" ");     }     System.out.println();}

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值