Java中的多维数组遍历

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

多维数组

数组 是 Java 中的容器对象,它包含固定数量的 单一类型 的值。 数组 的长度是在创建 数组 时确定的。创建后,它的长度是固定的。例如,下面定义了一个大小为 10 的数组:


 public class ArrayDemo {
private int arraySize=10;
public int[] arrayOfIntegers = new int[arraySize];
}

上面的代码是一个一维数组的例子。换句话说,数组只在一个方向上增长。很多时候我们需要在多个维度上增长的数组。这样的数组称为多维数组。为简单起见,让我们谈谈二维数组。当我们需要矩阵或 xy 图/图形时,二维数组非常有用。下面是一个方形二维数组的示例。


 public class ArrayDemo {
private int arraySize=10;
public int[] arrayOfIntegers = new int[arraySize];
}

想象一下,二维数组看起来像 x 和 y 坐标的矩阵。

然而,对于 Java 开发人员来说,这有点令人惊讶。 Java 实际上 没有 2 个数组。

在真正的数组中,数组的所有元素都占据一个连续的内存块,但在 Java 中的二维数组中并非如此。 java中的一维数组中的所有元素都占据相邻的内存位置,因此它确实是一个真正的数组。

在 Java 中,当我们定义:


 public class ArrayDemo {
private int arraySize=10;
public int[] arrayOfIntegers = new int[arraySize];
}

这意味着在上面的示例中,twoDArray 是对数组的引用,其每个元素都是对另一个 int 元素数组的引用。

这张图片 很好地解释了这个概念。

由于二维数组分散在内存中,因此对性能有一定影响。为了分析这些差异,我编写了一个简单的 Java 程序来描述 遍历顺序的重要性


 public class ArrayDemo {
private int arraySize=10;
public int[] arrayOfIntegers = new int[arraySize];
}

以下是示例输出:

上面的例子是可重复的,它始终给出相似的输出,但时间差异可能会有所不同。

相关文章