Java基础-多维数组

多维数组

多维数组可以看做是数组的数组。

比如二维数组,它就是一个特殊的一维数组,这个一维数组的每个元素又是一个一维数组。

int[][] a = new int[2][5];

比如上面这个二维数组,它就是一个特殊的一维数组,这个特殊的一维数组长度为2,它的两个元素又是一个一维数组,其长度为5。

在这里插入图片描述

三维数组也是一个特殊的一维数组,它的元素都是二维数组。
四维数组也是一个特殊的一维数组,它的元素都是三维数组。

n维数组也是一个特殊的一维数组,它的元素都是n-1维数组。

这就类似于递归,数组嵌套数组,多维数组就是数组里面还是数组,只有“最底层”的才是数组的数据。

在Java中,使用多维数组,可以让它除了最顶层的长度一致外,其他的长度都可以不一致。还是拿二维数组举例吧

//定义一个int类型的二维数组
// (一个特殊的一维数组,其元素是长度不确定的一维数组)
int[][] a = new int[2][];

//给这个特殊的一维数组的第一个元素赋值
a[0] = new int[5];

//给a[0]数组的元素a[0][n]赋值
for (int i = 0; i < 5; i++) {
    a[0][i] = i + 1;
}

//给这个特殊的一维数组的第二个元素赋值
a[1] = new int[3];

//给a[1]数组的元素a[1][n]赋值
for (int i = 0; i < 3; i++) {
    a[1][i] = i + 1;
}

//分别打印两个数组
System.out.println(Arrays.toString(a[0]));
System.out.println(Arrays.toString(a[1]));

对于多维数组,为什么除了顶层的长度需要确定外,其他长度都可以不一致的原因,博主以为:这还是需要我们将多维数组理解为特殊的一维数组,我们在声明这个特殊的一维数组时,我们必须确定它的长度,由于其内层还是数组,它的元素只是又指向了另外一个数组,我们对其下一层初始化时,就能指定随意合法的长度,因为它又是一个独立的数组。

在这里插入图片描述
对于多维数组,博主认为,只要将其层次理清楚,就是数组元素还是数组,我们只要熟悉数组的概念,将其嵌套,就是多维数组。

多维数组声明

二维数组:
  • dataType[][] arrayReVar = new dataType[m][n];
    定义一个m*n的二维数组,就是二维数组的长度为m,它的元素是一个长度为n的一维数组。

  • dataType[][] arrayReVar = new dataType[m][];
    与上一种方式类似,只是二维数组的元素(一维数组)的长度不确定。

  • dataType[][] arrayReVar = {{data11,data12,data13},{data21,data22},{data31,data32,data33,data34}};
    这个二维数组定义了三个元素,它们分别是{data11,data12,data13},{data21,data22},{data31,data32,data33,data34}。

三维数组:
  • dataType[][][] arrayReVar = new dataType[m][n][k];
    定义一个mnk的三维数组,就是三维数组的长度为m,它的元素是一个长度为n的二维数组。

  • dataType[][][] arrayReVar = new dataType[m][n][];
    与上一种方式类似,三维数组的长度为m,它的元素是一个长度为n的二维数组,二维数组的元素(一维数组)的长度不确定。

  • dataType[][][] arrayReVar = new dataType[m][][];
    与上一种方式类似,三维数组的长度为m,它的元素是一个长度不确定的二维数组。

  • dataType[][][] arrayReVar = {{{data111,data112,data113},{data121,data122},{data131,data132,data133,data134}},{{data211,data212,data213},{data221,data222},{data231,data232,data233,data234}}};
    这个三维数组定义了两个个元素,它们分别是{{data111,data112,data113},{data121,data122},{data131,data132,data133,data134}},{{data211,data212,data213},{data221,data222},{data231,data232,data233,data234}}。

更高维的数组请自行脑补,也可在下方与博主讨论(╹▽╹)

我们在程序中,一般最多就使用到二维数组,说实话,自从未参加关于编程类的比赛后,博主就很少使用数组了,/笑哭。

由于博主现在很少使用数组,所以可能会有写的不详细的地方,甚至可能有错,欢迎各位同仁在下方指出,与博主进行探讨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值