JAVA中的二维数组

来源:互联网 发布:win7注册表卸载软件 编辑:程序博客网 时间:2024/05/21 13:14

二维数组

一维数组是存储同一种数据类型多个元素的集合,而二维数组是存储同一种类型的一维数组的一个集合。二维数组的定义格式(与一维数组相似):  1.   数据类型[][] 数组名

动态初始化数组方式一:
1. 数据类型[][] 数组名 = new 数据类型[m][n];
指定有多少个长短相同的一维数组
m是一维数组的个数,n是一维数组中的数据个数。

这里用一个代码解释一下:

`package com.edu_01;public class ArrayArrayDemo {    public static void main(String[] args) {    //  需求:请定义一个二维数组,二维数组有三个一维数组,每个一维数组有两个元素。        int[][] arr = new int[3][2];//      1.打印二维数组名称        System.out.println(arr);//[[I@33abb81e//      2.打印每一个一维数组        System.out.println(arr[0]);//[I@4ec4d412        System.out.println(arr[1]);//[I@5c3f1224        System.out.println(arr[2]);//[I@30c028cc//      3.不给元素赋值打印元素        //二维数组中的第一个一位数组的0号元素        System.out.println(arr[0][0]);//0        System.out.println(arr[1][1]);//0//      4.赋值后打印元素        arr[1][0] = 10;        arr[2][0] = 20;        System.out.println(arr[1][0]);        System.out.println(arr[2][0]);    }}`由于数组属于引用型数据类型,所以在传输数组的时候,实际上传输的是数组所在的地址值,所以输出所有的数组的时候控制台显示的都是地址值。动态初始化数组方式二(指定二维数组中有多少个一维数组,每一个一维数组的长度不固定):        数据类型[][] 变量名 = new 数据类型[m][];
注意:    m这个数据必须给出,后面的数据可以不给
`package com.edu_01;public class ArrayArrayDemo2 {    public static void main(String[] args) {        //需求:定义一个有3个一维数组的二维数组,每一个一维数组的长度不固定        int[][] arr = new int[3][];
    //3.打印二维数组中每一个一维数组的名称    System.out.println(arr[0]);//null    System.out.println(arr[1]);//null    System.out.println(arr[2]);//null    //1.给这个二维数组的每一个一维数组的元素赋值    //arr[0] = {1,2,3};//在这里无法使用一维数组的静态初始化给二维数组中的每一个元素赋值    //第一个一维数组有两个元素    arr[0] = new int[2];    arr[0][0] = 10;    arr[0][1] = 20;    //第二个一维数组,长度为3    arr[1] = new int[3];    arr[1][0] = 2;    arr[1][1] = 3;    arr[1][2] = 4;    //第三个一维数组,长度为2    arr[2] = new int[2];    arr[2][0] = 4;    arr[2][1] = 5;    //2.打印二维数组的名称    System.out.println(arr);//[[I@7f39ebdb    //3.打印二维数组中每一个一维数组的名称    System.out.println(arr[0]);//[I@4ec4d412    System.out.println(arr[1]);//[I@5c3f1224    System.out.println(arr[2]);//[I@30c028cc    //4.打印二维数组中的每一个一位数组中的元素(手动打印几个即可)    System.out.println(arr[0][0]);    System.out.println(arr[2][0]);}

}
`

二维数组的静态初始化:
静态初始化:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

    简化格式:        数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

这里也用一个代码解释一下

package com.edu_01; 
public class ArrayArrayDemo3 {
public static void main(String[] args) {
//需求:定义一个里面有3个长度一样的一维数组的二维数组(使用静态初始化)
int[][] arr = new int[][]{{1,2},{3,4},{5,6}};//new int[3][2];
//需求:定义一个里面有3个长度不一样的一维数组的二维数组(使用静态初始化)
int[][] arr2 = {{1,2},{3,4,5},{6,7,8,9}};//new int[3][];
}
}

那么如何遍历一个二维数组呢?,这里用一个代码来解释一下:
要求:二维数组的求和:
公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99

`package com.edu_01;

public class ArrayArrayDemo5 {
public static void main(String[] args) {
//创建对应的二维数组
int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
//遍历二维数组并将每一个元素的值加起来
int sum = 0;
for (int i = 0; i < arr.length; i++) {
//拿到每一个一维数组之后,遍历每一个一维数组,加起来
for (int j = 0; j < arr[i].length; j++) {
sum+=arr[i][j];
}
}
System.out.println(sum);
}

}
`

0 0