二维数组的定义有很多方式:
第一种方式:
数据类型[][] 数组名 = new数据类型[行的个数][列的个数];
下面以第一种方式声明一个数组,如下所示。
int[][] xx= new int[3][4]; 表示有三行,每行方四个数据
第二种方式:
数据类型[][] 数组名 = new int[行的个数][];
下面以第二种方式声明一个数组,如下所示。
int[][] xx= new int[3][];
第二种方式和第一种类似,只是数组中每行元素的长度不确定。
第三种方式:
数据类型[][] 数组名= {
{
第0行初始值},{
第1行初始值},...,{
第n行初始值}};
下面以第三种方式声明一个数组,如下所示。
int[][] xx= {
{
1,2},{
3,4,5,6},{
7,8,9}};
上面的二维数组arr中定义了三个元素,这三个元素都是数组,分别为{
1,2}、{
3,4,5,6}、{
7,8,9}。
public class shuzu {
public static void main(String[] args){
//method01();
//method02();
}
public static void method03()
{
/格式三:数据类型[][] 数组名= {
{
元素,元素,元素},{
元素,元素,元素...}...};
int[][]arr ={
{
10,20},{
30,40,50}};
//获取二维数组中的数据
System.out.println(arr[0][0]);//结果:10
System.out.println(arr[0][1]);//结果:20
System.out.println(arr[1][0]);//结果:30
System.out.println(arr[1][1]);//结果:40
System.out.println(arr[1][2]);//结果:50
}
public static void method01()
{
/格式二:数据类型[][] 数组名 = new数据类型[x][];
int[][]arr=new int[2][];
//定义2个一维数组
int []arr1={
10,20};
int []arr2={
30,40,50,60};
arr[0]=arr1;//将arr1中的元素放在第0行
arr[1]=arr2;//将arr2中的元素放在第1行
//获取二维数组中的数据
System.out.println(arr[0][0]);//结果:10
System.out.println(arr[0][1]);//结果:20
System.out.println(arr[1][0]);//结果:30
System.out.println(arr[1][1]);//结果:40
System.out.println(arr[1][2]);//结果:50
}
public static void method02()
{
/格式一:数据类型[][] 数组名 = new数据类型[x][y];
//创建一个长度为2的二维数组,可以保存2行,每行放2个元素
int[][]arr=new int[2][2];
System.out.println(arr);
System.out.println(arr[0]);//打印的是索引是0行的地址[I@70dea4e
System.out.println(arr[1]);//打印的是索引是1行的地址[I@5c647e05
//定义2个一维数组
int []arr1={
10,20};
int []arr2={
30,40};
arr[0]=arr1;//将arr1中的元素放在第0行
arr[1]=arr2;//将arr2中的元素放在第1行
//获取二维数组中的数据
System.out.println(arr[0][0]);//结果:10
System.out.println(arr[0][1]);//结果:20
System.out.println(arr[1][0]);//结果:30
System.out.println(arr[1][1]);//结果:40
}
}
案例:通过二维数组保存公司销售组的销售数据
求每个销售小组的销售总金额
求公司所有销售小组的总金额
public class shux {
public static void main(String[] args){
int sum=0;
int[][]arre={
{
10,20},{
30,40},{
50,60,70}}; //三个小组的金额
for(int i=0;i<arre.length;i++) //arre.length判断几行
{
int groupsum=0;
for(int j=0;j<arre[i].length;j++) //arre[i].length判断m每行的元素个数
{
groupsum +=arre[i][j];
}
System.out.println("第"+(i+1)+"个小组总金额:"+groupsum);
sum +=groupsum;
}
System.out.println("公司总金额"+sum);
}
}