7-4 锯齿数组java_Java多维数组和锯齿数组

示例

可以定义一个具有多个维的数组。通过提供每个维度的索引来访问多维数组,而不是通过提供单个索引来访问。

多维数组的声明可以通过[]为每个维添加常规数组decle来完成。例如,要制作二维int数组,请在声明中添加另一组括号,例如int[][]。对于3维数组(int[][][])等,此操作继续进行。

定义具有三行三列的二维数组:

int rows = 3;

int columns = 3;

int[][] table = new int[rows][columns];

可以使用此构造对数组建立索引并为其分配值。请注意,未分配的值是数组类型的默认值,本例中0为int。

table[0][0] = 0;

table[0][1] = 1;

table[0][2] = 2;

也可以一次实例化一个尺寸,甚至制作非矩形数组。这些通常称为锯齿阵列。

int[][] nonRect = new int[4][];

重要的是要注意,尽管可以定义锯齿状数组的任何维数,但必须定义其前一级。

// 有效

String[][] employeeGraph = new String[30][];

// 无效

int[][] unshapenMatrix = new int[][10];

// 也无效

int[][][] misshapenGrid = new int[100][][10];

多维数组如何用Java表示图片来源:http://math.hws.edu/eck/cs124/javanotes3/c8/s5.html

锯齿数组文字初始化

多维数组和锯齿状数组也可以使用文字表达式进行初始化。以下内容声明并填充了2x3int数组:

int[][] table = {

{1, 2, 3},

{4, 5, 6}

};

注意:锯齿状子数组也可能是null。例如,以下代码声明并填充一个二维int数组,其第一个子数组为null,第二个子数组的长度为零,第三个子数组的长度为一个,最后一个子数组的长度为两个:

int[][] table = {

null,

{},

{1},

{1,2}

};

对于多维数组,可以通过其索引提取较低级别的数组:

int[][][] arr = new int[3][3][3];

int[][] arr1 = arr[0]; // 从arr获取第一个3x3维数组

int[] arr2 = arr1[0]; // 从arr1获取第一个3维数组

int[] arr3 = arr[0]; // 错误:无法从int [] []转换为int []

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值