二维数组 ——Java
每博一文案
人生就像是一列前行的火车,有人在起点,与你一同出发,却在中途到达自己的目的之后,与你挥手告别。
提前下车,而有人上车,就会有人上车告别老朋友之后,总会有新的人陪你一起走完余下的路程,很高心你能来,也不遗憾你离开。
只要曾经拥有过美好,我们依旧还是朋友。
—————— 一禅心灵庙语
二维数组
二维数组的定义
-
二维数组本质上也就是一维数组,只不过每个元素又是一个一维数组
-
二维数组的定义方式有多种
-
与C语言有许多不同的点:
-
从定义上:
int[][] arr = {1,2,3,4,5,6}; // 在Java当中是不可以这里初始化,二维数组的,需要分别使用花括号,括起来
int[][] arr = {{1,2,3},{4,5,6}};
// 当我们不使用new 的方式定义数组的时候,我们是不可以规定二维数组的行列的不然会报错的,这是与C语言不同的一个大点。
// 当我们需要指定二维数组的行列的时候,需要使用new int[2][1]
int[][] arr = new int[][]{{1,2,3},{4,5,6}};
int[][] arr = new int[2][1]; // 当我们需要指定二维数组的行列的时候,需要使用new int[2][1]
public class Study06 {
// 二维数组的定义
public static void main (String[] args) {
// int[][] arr = {1,2,3,4,5,6,7,8,9,10} 在Java中不可以这样,需要括号分割
int[][] arr1 = {{1,2,3},{4,5,6}};
int[][] arr2 = new int[][]{{1,2,3},{4,5,6}};
int[][] arr3 = new int[2][3];
// int[2][3] arr4 = {{1,2,3},{4,5,6}}; 没有使用new 不可以标注行列的
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(arr1[i][j]+" ");
}
System.out.println();
}
}
}
二维数组的初始规格
- 如下:
int[][] arr = {{1,2,3},
{4,5,6},};
-
观察上述初始化二维数组:
-
我们在第二个的花括号后面,多加上了一个逗号 ,
-
在这里,这个逗号让人感觉是不需要的,没错这个逗号 我们确实可以不需要的。
-
特意加上这个逗号 有一定的好处:
- 初始值纵向排列看起来更整齐,
- 大大提高代码的可读性,阅读性
- 更易于增加或删除整行的初始值
- 例如:像下面这样增加一行时,可以防止发生忘加逗号的错误
int[][] arr = { {1,2,3}, {4,5,6}, {7,8,9}, }
-
二维数组的内部结构
- 让我们来认识一下二维数组的内部结构:
int[][] arr = {{1,2,3},
{4,5,6},};
各种打印二维数组
使用循环打印数组
- 这里:注意对==length== 的使用:
public class Study06 {
// 二维数组的各种打印方式,使用两个for循环打印
public static void main (String[] args) {
int[][] arr = new int[][]{{1,2,3},
{4,5,6},};
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
使用扩展for打印
public class Study06 {
// 二维数组的使用for的扩展打印
public static void main (String[] args) {
int[][] arr = new int[][]{{1,2,3},
{4,5,6},};
for (int[] tmp:arr) { // 注意 二维数组的结构。是由一个一个的一维数组组成的与,C语言中的数组不同的
for (int num:tmp) {
System.out.print(num+" ");
}
System.out.println();
}
}
}
- 图解:
不规则二维数组
- 所谓的不规则其实就是不整齐而已
- 注意:
- C语言中可以必须指出列数 ,而行可以自行推导出来,
- Java中使用 new ,行数必须指定,而列数可以自行推导出来的
- 注意这两种语言的不同之处
代码:
public class Study06 {
public static void main (String[] args) {
int[][] arr = new int[2][];
// 这里我们注意:使用new,java中的行数必须指定,列可以省略,自行推导出来
arr[0] = new int[3];
arr[1] = new int[2];
for (int i = 0; i< arr.length,i++) {
for(int j = 0;j < arr[i].length,j++) {
System.out.print(arr[i][j]+" ");
}
System.out.pritln();
}
}
}
结果:
最后:
限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家!后会有期,江湖再见!