二维数组的概述:
二维数组其实就是一个元素为一维数组的数组;
格式1:
- 数据类型[][] 变量名=new 数据类型[m][n];
m表示这个二维数组有多少个数组
n表示每一个一维数组的元素个数 - 举例:
int[][] arr=new int[3][2];
定义了一个二维数组arr
这个二维数组有3个一维数组,名称是ar[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[m][n]来获取
格式2:
- 数据类型[][] 变量名=new 数据类型[m][];
m表示这个二维数组有多少个数组
这一次没有直接给出一维数组的元素个数,可以动态的给出 - 举例:
int[][] arr=new int[3][];
arr[0] = new int[2];
arr[1]= new int[3];
arr[2]=new int[1];
格式3:
数据类型[][] 变量名=new 数据类型[][]{{元素...},{元素...},{元素...}};
也可以是:
数据类型[][] 变量名={{元素...},{元素...},{元素...}};
举例:int[][] arr={{1,2,3},{4,6},{6}}
练习:
1.遍历一个行列确定的二维数组;
package cn.manman.com;
/*
* 创建一个二维数组
* 并且遍历二维数组
*/
public class erweishuzu {
public static void main(String[] args) {
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();
}
}
}
用方法改进:
package cn.manman.com;
/*
* 创建一个二维数组
* 并且遍历二维数组
*/
public class erweishuzu {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
printArray(arr);
}
public static void printArray(int[][] arr){
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.遍历一个行列变化的数组
package cn.manman.com;
/*
* 遍历一个行列变化的数组
*/
public class bianlishuzu2 {
public static void main(String[] args) {
int [][] arr={{1,2,3},{4,5},{6}};
printArray(arr);
}
public static void printArray(int[][] arr){
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();
}
}
}
我们会发现其实代码是一样的,所以说所有的二维数组的遍历使用的都是双层for循环,第一层遍历的是x,第二层遍历的是y;
3.公司年销售额求和
某公司按照季度和月份统计的数据如下:
第一季度:22,66,44
第二季度:77,33,88
第三季度:11,66,99
第四季度:25,45,65
package cn.manman.com;
/*
* 公司年销售额求和
某公司按照季度和月份统计的数据如下:
第一季度:22,66,44
第二季度:77,33,88
第三季度:11,66,99
第四季度:25,45,65
分析:将题目中的数据用二位数组来表示
int[][] arr ={{22,66,44},{77,33,88},{25,45,65},{11,66,99}}
*/
public class lianxi {
public static void main(String[] args) {
int[][] arr ={{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
printArray(arr);
}
public static void printArray(int[][] arr){
int sum=0;
for(int x=0;x<arr.length;x++){
for(int y=0;y<arr[x].length;y++){
sum+=arr[x][y];
}
}
System.out.println(sum);
}
}