数组-二维数组

Posted 犄角旮旯是程序媛吖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组-二维数组相关的知识,希望对你有一定的参考价值。

一、如何理解二维数组

  • 数组属于引用数据类型
  • 数组的元素也可以是引用数据类型
  • 一个一维数组A的元素如果还是一个一维数组类型的,则此数组A称为二维数组

二、二维数组的声明与初始化

正确的方式:

//二维数组的声明和初始化
int[] arr1 = new int[]{1,2,3};//一维
//1.1静态初始化
int[][] arr2 = new int[][]{{1,2},{3,4},{5,6},{7,8}};//二维
//1.2.1动态初始化方式一
String[][] arr3 = new String[2][2];
//1.2.2动态初始化方式二
String[][] arr4 = new String[2][];

三、如何调用二维数组元素

//2.如何调用数组的指定位置的元素
System.out.println(arr2[0][1]);//2
//null-未被赋值,String类型的默认值为null
System.out.println(arr3[0][1]);

arr4[1] = new String[2];
//因为arr4,列还未被赋值,单独打印会空指针异常
System.out.println(arr4[1][0]);

四、二维数组的属性-length

//3.如何获取数组的长度
System.out.println(arr2.length);
System.out.println(arr2[0].length);

五、遍历二维数组元素

//4.如何遍历数组
for(int i = 0;i < arr2.length;i++){
    for(int j = 0;j < arr2[i].length;j++){
        System.out.print(arr2[i][j] + " ");
    }
    System.out.println();
}

六、二维数组元素的默认初始化值

//5.数组元素的默认初始化值
/*
规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr = new int[2][6];
外层元素:arr[0]、arr[1]、arr[2]等
内层元素:arr[0][1]、arr[0][2]等
*/
//初始化方式一:
//数组元素是整型:外层是一个地址值,内层是0
int[][] array = new int[2][2];
System.out.println(array[0]);
System.out.println(array[0][0]);
System.out.println();
//数组元素是布尔型:外层是一个地址值,内层是false
boolean[][] boo = new boolean[2][2];
System.out.println(boo[0]);
System.out.println(boo[0][0]);
System.out.println();
//数组元素是浮点型:外层是一个地址值,内层是0.0
float[][] flo = new float[2][2];
System.out.println(flo[0]);
System.out.println(flo[0][0]);
System.out.println();
//数组元素是char型:
char[][] c = new char[2][2];
System.out.println(c[0]);
System.out.println(c[0][0]);
if(c[0][0] == 0){
    System.out.println("√");
}
System.out.println();
//数组元素是引用数据类型:外层是一个地址值,内层是null
String[][] str = new String[2][2];
System.out.println(str[0]);
System.out.println(str[0][0]);
//初始化方式二:
//外层是null,内层不能调用,否则报异常错误
double[][] dou = new double[2][];
System.out.println(dou[0]);
//空指针异常,因为dou[0]为null,再去找它下面元素,是找不到的
System.out.println(dou[0][0]);

七、二维数组的内存结构

以上是关于数组-二维数组的主要内容,如果未能解决你的问题,请参考以下文章

20160212.CCPP体系详解(0022天)

VSCode自定义代码片段10—— 数组的响应式方法

c语言中如何通过二级指针来操作二维数组

易语言二维数组一次性赋值错误

java 如何将二维数组的一列作为参数传进去 求代码

c语言二维数组