【java学习】多维数组(10)

文章目录

  • 1. 二维数组


1. 二维数组

二维数组[][]:数组中的数组
格式1(动态初始化):int[][] arr = new int[3][2];

解释说明:

  1. 定义了名称为arr的二维数组
  2. 二维数组中有3个一维数组
  3. 每个一维数组中有2个元素
  4. 一维数组的名称分别为arr[0],arr[1],arr[2]
  5. 给第一个一维数组1脚表位赋值为78写法是:arr[0][1]=78;

格式2(动态初始化):int[][] arr = new int[3][];

解释说明:

  1. 二维数组中有3个一维数组
  2. 每个一维数组都是默认初始化值null (注意:区别格式1)
  3. 可以对这个三个一维数组分别进行初始化
    如:arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2]

:这种int[][] arr = new int[][3];是非法定义

格式3(静态初始化):int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

解释说明:

  1. 定义一个名称为arr的二维数组,二维数组中有三个一维数组
  2. 每个一维数组中具体元素也都已初始化
  3. 第一个一维数组arr[0] = {3,8,2};
  4. 第二个一维数组arr[1] = {2,7};
  5. 第三个一维数组arr[2] = {9,0,1,6};
  6. 第三个一维数组的长度表示方式:arr[2].length

注意1:特殊写法情况:

int[] x,y[];    //x是一维数组, y是二维数组。
//相当于 int[] x; int[] y[];

对比一维数组和二维数组声明方式:

//一维数组:
int[] x 或者 int x[]
//二维数组:
int[][] y 或者 int[] y[] 或者 int y[][]

注意2:java中多维数组不必都是规则矩阵形式

例子如下
代码:

public class Test1 {
	public static void main (String[] args) {
		
		int[][] ii = new int[][] {
			{1,2},
			{4,3}
		};
		
		int[][] ii0 = new int[2][3];  //第一位部分的长度是2,第二维的长度(也就第一维的每个元素的长度)是3
		
		int[][] ii1 = new int [2][]; //只定义第一位的长度,第二维不定义
		
		System.out.println(ii[1][0]);   // 输出 4
	}
}

练习题
【java学习】多维数组(10)_第1张图片
int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};
获取arr数组中的所有元素的和。使用for的嵌套循环即可。

答案
解法1:

public class Test1 {
	public static void main (String[] args) {
		
		int[][] arr = new int[][] {
			{3,8,2},
			{2,7},
			{9,0,1,6}
		};
		
		int len = arr.length;
		int res = 0;
		for(int i = 0; i < len; i++) {
			int[] arr0 = arr[i];
			int ilen = arr0.length;  //二维数组的长度
			for(int j = 0; j < ilen; j++) {
				res += arr0[j];
			}
		}
		System.out.println(res);
		
	}
}

运行结果:
【java学习】多维数组(10)_第2张图片

解法2:

public class Test1 {
	public static void main (String[] args) {
		
		int[][] arr = new int[][] {
			{3,8,2},
			{2,7},
			{9,0,1,6}
		};
		
		int res =  0;
		for(int i = 0; i < arr.length; i++) {   // arr.length = 3
			for(int j = 0; j < arr[i].length; j++) {
				res += arr[i][j];
			}
		}
		System.out.println(res);
		
	}
}

你可能感兴趣的:(java学习,java,学习,开发语言)