二维数组_基础(九)

一、概念

二维数组就是元素为一位数组的一个数组

二、格式

1、格式一

  数据类型[][] 数组名 = new 数据类型[m][n]

  m:表示这个二维数组有多少个一维数组
  n:表示每一个一维数组的元素有多少个

            //定义一个二维数组
	 int[][] arr = new int[3][2];
	 //定义了一个二维数组arr
	 //这个二维数组有3个一维数组的元素
	 //每一个一维数组有2个元素
	 //输出二维数组名称
	 System.out.println(arr); //地址值	[[I@175078b
	 //输出二维数组的第一个元素一维数组的名称
	 System.out.println(arr[0]); //地址值	[I@42552c
	 System.out.println(arr[1]); //地址值	[I@e5bbd6
	 System.out.println(arr[2]); //地址值	[I@8ee016
	 //输出二维数组的元素
	 System.out.println(arr[0][0]); //0
	 System.out.println(arr[0][1]); //0

格式1内存图解

2、格式二

  数据类型[][]数据名 = new 数据类型[m][];

  m:表示这个二维数组有多少个一维数组。
  列数没有给出,可以动态的给,这次是一个变化的列数

           //定义数组
	int[][] arr = new int[3][];
	
	System.out.println(arr);	//[[I@175078b
	System.out.println(arr[0]); //null
	System.out.println(arr[1]); //null
	System.out.println(arr[2]); //null
	
	//动态的为每一个一维数组分配空间
	arr[0] = new int[2];
	arr[1] = new int[3];
	arr[2] = new int[1];
	
	System.out.println(arr[0]); //[I@42552c
	System.out.println(arr[1]); //[I@e5bbd6
	System.out.println(arr[2]); //[I@8ee016
	
	System.out.println(arr[0][0]); //0
	System.out.println(arr[0][1]); //0
	//ArrayIndexOutOfBoundsException
	//System.out.println(arr[0][2]); //错误
	
	arr[1][0] = 100;
	arr[1][2] = 200;

格式2内存图解

3、格式三

  基本格式:
        数据类型[][] 数据名 = new 数据类型[][]{{元素1,元素2,...},{元素1,元素2,...},{元素1,元素2,...}...};
        int[][]arr=new int[][]{{1,2,3},{4,5,6},{7,8,9}}
  简化格式:
        数据类型[][] 数据名 = {元素1,元素2,...},{元素1,元素2,...},{元素1,元素2,...};
        int[][]arr={{1,2,3},{4,5,6},{7,8,9}}

           //定义数组
	int[][] arr = {{1,2,3},{4,5},{6}};
	
	System.out.println(arr);
	System.out.println(arr[0]);
	System.out.println(arr[1]);
	System.out.println(arr[2]);
	
	System.out.println(arr[0][0]); //1
	System.out.println(arr[1][0]); //4
	System.out.println(arr[2][0]); //6
	
	System.out.println(arr[0][1]); //2
	System.out.println(arr[1][1]); //5
	//越界
	System.out.println(arr[2][1]); //错误

格式3内存图解

三、注意事项

1、以下格式也可以表示二维数组

  A、数据类型 数组名[][]=new 数据类型[m][n];
  B、数据类型[] 数据名[] = new 数据类型[m][n];

2、注意下面定义的区别

  int x;
  int y;
  int x,y;

  int []x;
  int [] y[];

  int [] x, y[];
四、数据的练习

1、二维数组遍历:外循环控制二维数组的长度,就是一位数组的个数,内循环控制的是一维数组的长度

  //定义一个二维数组
  int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
  for(int x=0; x<arr.length; x++) {
  for(int y=0; y<arr[x].length; y++) {
      System.out.print(arr[x][y]+" ");
  }
  System.out.println();
  }

2、 公司年销售额求和

    某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
       
  //把题目的数据用二维数组来表示
	int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
	
	//定义一个求和变量sum,初始化值是0。
	int sum = 0;
	
	//通过遍历就可以得到每一个二维数组的元素。
	for(int x=0; x<arr.length; x++) {
		for(int y=0; y<arr[x].length; y++) {
			//把元素累加即可。
			sum += arr[x][y];
		}
	}
	
	//最后输出sum,就是结果。
	System.out.println("一年的销售额为:"+sum+"万元");
posted @ 2020-12-18 07:46  我是一个大土豆  阅读(45)  评论(0编辑  收藏  举报