Java学习笔记(十):二维数组

什么是二维数组?

1.  从定义形式上看

int[][]

2.  一维数组的每个元素是一维数组, 就构成二维数组

3.二维数组的每个元素是一维数组, 所以如果需要得到每个一维数组的值,还需要再次遍历

快速入门:

        /*
		请用二维数组输出如下图形
			0 0 0 0 0 0
			0 0 1 0 0 0	
			0 2 0 3 0 0
			0 0 0 0 0 0
		 */
public class TwoDimensionalArray01 { 

	public static void main(String[] args) {
		
		//什么是二维数组: 
		//1. 从定义形式上看 int[][]
		//2. 可以这样理解,原来的一维数组的每个元素是一维数组, 就构成二维数组
		int[][] arr = { {0, 0, 0, 0, 0, 0},
						{0, 0, 1, 0, 0, 0}, 
						{0,2,  0, 3, 0, 0}, 
						{0, 0, 0, 0, 0, 0} };

		
		System.out.println("二维数组的元素个数=" + arr.length);
        //关于二维数组的关键概念
		//(1) 二维数组的每个元素是一维数组, 所以如果需要得到每个一维数组的值
		//    还需要再次遍历
	
    	//(2) 如果我们要访问第 (i+1)个一维数组的第j+1个值 arr[i][j];
		//    举例 访问 3, =》 他是第3个一维数组的第4个值 arr[2][3]
		System.out.println("第3个一维数组的第4个值=" + arr[2][3]); //3


		//输出二维图形
		for(int i = 0; i < arr.length; i++) {//遍历二维数组的每个元素
			
			for(int j = 0; j < arr[i].length; j++) {
            //1. arr[i] 表示 二维数组的第i+1个元素 比如arr[0]:二维数组的第一个元素
		
        	//2. arr[i].length 得到 对应的 每个一维数组的长度 
				System.out.print(arr[i][j] + " "); //输出了一维数组
			}
			System.out.println();//换行
		}
	}
}

二维数组的使用:

使用方式 1: 动态初始化

语法:  

类型[][]  数组名=new 类型[大小][大小]

比如:

 int a[][]=new int[2][3]

这里面的2表示:有两个一维数组。3表示:每个一维数组里面有3个元素

案例演示:

public class TwoDimensionalArray02 {
public static void main(String[] args) {
    
    int arr[][]; //声明二维数组
    arr = new int[2][3];//再开空间
    arr[1][1] = 8;

        for(int i = 0; i < arr.length; i++) {//遍历 arr 数组
            for(int j = 0; j < arr[i].length; j++) {//对每个一维数组遍历 
                System.out.print(arr[i][j] +" ");
                }
            System.out.println();//换行
            }
}
}

使用方式 2: 动态初始化

语法:

先声明:类型 数组名[][];        

再定义(开辟空间) 数组名 = new 类型[大小][大小] 赋值

(有默认值,比如 int类型的就是 0)

使用方式 3: 动态初始化-列数不确定

案例演示

需求:使用动态初始化创建下面二维数组,并输出。

 代码如下:


public class TwoDimensionalArray03 { 

	public static void main(String[] args) {
		
		//创建 二维数组,一个有3个一维数组,但是每个一维数组还没有开数据空间
		int[][] arr = new int[3][]; 
		
		for(int i = 0; i < arr.length; i++) {//遍历arr每个一维数组
			//给每个一维数组开空间 new
			//如果没有给一维数组 new ,那么 arr[i]就是null
			arr[i] = new int[i + 1]; 

			//遍历一维数组,并给一维数组的每个元素赋值
			for(int j = 0;  j < arr[i].length; j++) {
				arr[i][j] = i + 1;//赋值
			}

		}

		
		for(int i = 0; i < arr.length; i++) {//遍历arr输出//遍历arr输出
			
			for(int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j] + " ");//输出arr的每个一维数组
			}
			System.out.println();//换行
		}
		

	}
}

使用方式 4: 静态初始化

语法:

定义 类型 数组名[][]    = {{值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}

比如:

int[][] arr = {{1,1,1}, {2,2}, {3}};

分析代码:

1.  定义了一个二维数组 arr
2. arr 有三个元素(每个元素都是一维数组)
3. 第一个一维数组有 3 个元素 , 第二个一维数组有 2 个元素, 第三个一维数组有 1 个元素

 案例演示:

/*
int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍历该二维数组,并得到和
*/
public class TwoDimensionalArray05 {

    public static void main(String[] args) {


    int arr[][]= {{4,6},{1,4,5,7},{-2}};
    int sum = 0;
        for(int i = 0; i < arr.length; i++) {//遍历每个一维数组

            for(int j = 0; j < arr[i].length; j++) { //遍历二维数组

            sum += arr[i][j];//将各个值累计到 int sum
            }
        }
System.out.println(sum);
}
}

二维数组使用细节和注意事项

(1)    一维数组的声明方式有: 

 int[] x    或者 int x[]

(2)    二维数组的声明方式有:
 

int[][] y 或者    int[] y[]    或者 int    y[][]

(3)    二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同。比如: map[][]  是 一个二维数组

int map [][] = {{1,2},{3,4,5}}


由 map[0] 是一个含有两个元素的一维数组 ,map[1] 是一个含有三个元素的一维数组构成,我们也称为列数不等 的二维数组

 

posted @ 2021-09-01 19:28  她与剑意皆失  阅读(81)  评论(0编辑  收藏  举报