一、简介
二维数组本质上就是是以数组作为数组元素的数组,即“数组的数组”;
二维数组又称为矩阵,行列数相等的矩阵称为方阵。
二、二维数组的几种格式:
1、第一种
(1)格式
数据类型[][] 变量名=new 数据类型[a][b];
a表示这个二维数组有多少个数组
b表示每一个一维数组的元素个数
(2)举例:
int[][] arr=new int[3][2];
定义了一个二维数组arr;
这个二维数组有3个一维数组,分别是ar[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[a][b]来获取
2、第二种
(1)格式
数据类型[][] 变量名=new 数据类型[a][];
a表示这个二维数组有多少个数组
注:此类没有直接给出一维数组的元素个数,需要动态的给出
(2)举例:
int[][] arr=new int[3][];
arr[0] = new int[2];
arr[1]= new int[3];
arr[2]=new int[1];
3、第三种
(1)格式
1)数据类型[][] 变量名=new 数据类型[][]{{元素…},{元素…},{元素…}};
2)数据类型[][] 变量名={{元素…},{元素…},{元素…}};
(2)举例:
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、小案例:
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);
}
}
注:内容参考:https://www.jianshu.com/p/aa905c079332