基本概念
public class Main {public static void main(String[] args) {//定义形式 int[][]//解读,由原来的一维数组的每一个元素变为一维数组,就构成了二维数组int[][] a = {{1,2,3},{4,5,6},{7,8,9}};//输出二维数组for(int i = 0; i < a.length; i++){//a[i].length得到对应的每个一维数组的长度for(int j = 0; j < a[i].length; j++){System.out.print(a[i][j] + "\t");}System.out.println();}//关于二维数组的概念System.out.println("二维数组元素的个数:" + a.length);//二维数组的每个元素为一维数组//访问第 i + 1 个一维数组的第 j + 1 个元素的为a[i][j]}}
动态初始化
- 语法:类型[][] 数组名 = new 类型[大小][大小]
- 例子:int a[][] = new int[2][3]; ```java package test;
public class Main { public static void main(String[] args) { int[][] a = new int[2][3]; //等价于 // int[][] a ;//声明二维数组 // a = new int[2][3];//再开辟空间 for(int i = 0; i < a.length; i++){ for(int j = 0; j < a[i].length; j++){ System.out.print(a[i][j] + “ “); } System.out.println(); } } }
<a name="XMz3f"></a># 列数不定的动态初始化```javapublic class Main {public static void main(String[] args) {//创建二维数组,一共含3个一维数组,但是每个一维数组还未开辟空间int[][] a = new int[3][];for(int i = 0; i < a.length; i++){//遍历a中的每一个一维数组//给每一个一维数组开辟空间 new//如果没有给一维数组 new,那么a[i]就是nulla[i] = new int[i + 1];//遍历一位数组,并给每一个元素赋值for(int j = 0; j < a[i].length; j++){a[i][j] = i + 1;}}System.out.println("输出数组中的元素");for(int i = 0; i < a.length; i++){for(int j = 0; j < a[i].length; j++){System.out.print(a[i][j] + " ");}System.out.println();}}}
静态初始化
- 语法:类型[][] 数组名 = {{数据1,数据2,……},{数据1,数据2,……},{数据1,数据2,……}};
例子:int a[][] = {{1,2,3},{4,5},{6}};
public class Main {public static void main(String[] args) {int[][] a = {{1,2,3},{4,5},{6}};System.out.println("输出数组中的元素");for(int i = 0; i < a.length; i++){for(int j = 0; j < a[i].length; j++){System.out.print(a[i][j] + " ");}System.out.println();}}}
细节
一维数组的声明方式:
int[] x;
- int x[];
二维数组的声明方式:
- int[][] x;
- int x[][];
- int []x[];
二维数组实际上是由多个一维数组组成的,它的各个一维数组长度可以相同也可以不同;
比如:a[][]是一个二维数组
int[][] a = {{1,2},{3.4.5}};
该二维数组是由a[0]是一个含有两个元素的一维数组,a[1]是一个含有三个元素的一维数组组成,我们可以称之为列数不等的二维数组。
