Java基础-Day06
多维数组
- 如何理解二维数组?
- 数组属于引用数据类型
- 数组的元素也可以是引用数据类型
- 一个一维数组A的元素如果还是一个一维数组类型的,则次数组称为二维数组
- 二维数组的属性:
int[][] arr3 = new int[][]{{1,2,3,4},{4,5,6,7,8},{9,10}};
System.out.println(arr3.length);//输出:3 数组的内存分析:arr3在堆中一维数组的个数
System.out.println(arr3[0].length);//输出:4 数组的内存分析:arr3[0]在堆中一维数组的元素个数
System.out.println(arr3[1].length);//输出:5 数组的内存分析:arr3[0]在堆中一维数组的元素个数
- 二维数组的使用:
/*
规定:二维数组分为外层数组元素,内层数组元素
int[][] arr = new int[4][3];
外层元素:arr[0],arr[1]等等
内层元素:arr[0][0],arr[1][2]等等
动态数组元素的默认初始化值,有两种初始化方式:
方式一:int[][] arr = new int[4][3];
外层元素的初始化值为:地址值
内层元素的初始化值为:与一维数组初始化情况相同
方式二:int[][] arr = new int[4][];
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,报错,空指针异常
*/
//例子如下:
System.out.println(arr[0]);//输出结果:地址值: [I@1b6d3586 数组的内存分析:数组种类+数组类型+数组地址
System.out.println(arr[0][0]);//输出结果:数组类型默认值:0 数组的内存分析:数组地址上的默认值
double[][] arr2 = new double[4][];
System.out.println(arr2[1]);//输出结果:null 数组的内存分析:指向的是arr2[1]栈对应的堆的一维数组,一维数组是引用类型默认值为null
System.out.println(arr2[1][0]);//输出值为:报错,空指针异常 数值的内存分析:arr2[1]已空,在堆中无相关地址
//杨辉三角:yangHui[i][j] = yangHui[i-1][j] + yangHui[i-1][j-1];
//1.声明并初始化二维数组
int[][] yangHui = new int[10][];
//2.给数组的元素赋值
for (int i = 0; i < yangHui.length; i++) {
yangHui[i] = new int[i + 1];//一维数组初始化
//2.1 给首末元素赋值
yangHui[i][0] = 1;
yangHui[i][i] = 1;
//2.2 给每行的非首末元素赋值
for (int j = 1; j < yangHui[i].length - 1; j++) {
yangHui[i][j] = yangHui[i-1][j] + yangHui[i-1][j-1];
}
}
//3.遍历二维数组
for (int i = 0; i < yangHui.length; i++) {
for (int j = 0; j < yangHui[i].length; j++) {
System.out.print(yangHui[i][j]);
System.out.print(" ");
}
System.out.println();
}
标签:Java,int,元素,基础,Day06,System,数组,yangHui,out
From: https://www.cnblogs.com/lurenj/p/17514962.html