Java基础 | 深入理解多维数组

Posted Hdparm

tags:

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

重点陈述:把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格。对于二维数组的理解,我们可以看成是一维数组。其实,从数组底层的运行机制来看,其实没有多维数组。

0x00、二维数组[][]:数组中的数组

Java基础


动态和静态初始化规则如下

规则1:

格式1(动态初始化):int[][] arr = new int[3][2];

定义了名称为arr的二维数组,二维数组中有3个一维数组,每一个一维数组中有2个元素,一维数组的名称分别为arr[0], arr[1], arr[2],给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;

规则2:

格式2(动态初始化):int[][] arr = new int[3][];

二维数组中有3个一维数组,每个一维数组都是默认初始化值null (注意:区别于格式1),可以对这个三个一维数组分别进行初始化,arr[0] = new int[3];    arr[1] = new int[1];   arr[2] = new int[2]

规则3:

int[][] arr = new int[][]3,8,2,2,7,9,0,1,6;

定义一个名称为arr的二维数组,二维数组中有三个一维数组,每一个一维数组中具体元素也都已初始化,第一个一维数组 arr[0] = 3,8,2;第二个一维数组 arr[1] = 2,7;第三个一维数组 arr[2] = 9,0,1,6;第三个一维数组的长度表示方式:arr[2].length;

Java基础

规则注意:

  • int[][]arr = new int[][3];  是经典的错误写法,因为不同于C++的写法。
  • 注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
  • 注意Java中多维数组不必都是规则矩阵形式

Java基础

0x02、深入理解多维数组与内存地址的关系


因为Java编程语言中的二维数组只不过是数组的数组。所以在Java二维数组中,数据存储在行和列中,我们可以使用行索引和列索引来访问记录(就像一个Excel文件)。 如果数据是线性的,我们可以使用一维数组。然而,要处理多层次数据,我们必须使用多维数组。Java中的二维数组是多维数组的最简单形式。

Java基础

数组的初始化遵循顺序执行,不能空对空。

Java基础

实战代码:

分析这段代码与内存的关系:

​int[][] arr = new int[3][]; arr[1] = new int[]1,2,3; arr[2] = new int[3]; Sysout(arr[0]);//null Sysout(arr[0][0]);//​

Java基础

实战代码2:

查看这段代码与内存的关系:

​int[][] arr1 = new int[4][]; arr1[0] = new int[3]; arr1[1] = new int[]1,2,3; arr1[0][2] = 5; arr1 = new int[2][];​

Java基础

0x03、输出代码实例:


通过这个输出数组,可以实际观察到代码中的是什么?

class TwoDimensionalString

public static void main(String[] args)

String[][] str = new String[][]"one", "two", "three", "four","five","six";
System.out.println("Two dimensional string array elements are :\\n");
for (int i = 0; i < 3; i++)

for (int j = 0; j < 2; j++)

System.out.println("str["+i+"]["+j+"]:"+str[i][j]);



成功得到结果:

Two dimensional string array elements are :

str[0][0]:one
str[0][1]:two
str[1][0]:three
str[1][1]:four
str[2][0]:five
str[2][1]:six

0x04、总结:


在本文中,我们看到了Java中的多维数组及其用途,在Java中声明二维数组的各种方法,Java如何处理二维数组,以及JVM如何分配内存来实现二维数组,可以使用索引来访问和更改二维数组的元素,最后在Java中初始化和声明二维数组的各种方法,以及声明语句中的一些常见错误。


资料链接:

1.https://www.tutorialgateway.org/two-dimensional-array-in-java/

2.https://javatutoring.com/java-two-dimensional-array/

3.https://www.scaler.com/topics/two-dimensional-array-in-java/



以上是关于Java基础 | 深入理解多维数组的主要内容,如果未能解决你的问题,请参考以下文章

Java基础 -- 深入理解Java异常机制

如何理解JS多维数组

Java中的多维数组长度

图解多级指针与“多维”数组

Java容器深入浅出之数组

JAVA基础编程之打印1-100数字的直角三角形