二维数组
数组中存储数组的数组
应用场景:
当我们需要把数据分组管理的时候,据需要用到二维数组
二维数组初始化
静态初始化:
格式:
数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2},{元素1,元素2},{元素1,元素2}};
int[][] arr = new int[][]{{1,2},{1,2}}
简化格式:
数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2},{元素1,元素2}};
public class Test1 {
public static void main(String[] args) {
int[][] arr= new int[][]{
{1,2,3,4},
{2,3,4,5}};
System.out.println(arr[0]);//[I@776ec8df 二维数组中0索引对应的一维数组的地址值
System.out.println(arr[0][0]);//1 二维数组中0索引对应的一维数组中0索引对应的值
}
}
遍历:
package day0;
public class Test1 {
public static void main(String[] args) {
int[][] arr = new int[][]{
{1, 2, 3, 4},
{2, 3, 4, 5}};
// System.out.println(arr[0]);//[I@776ec8df 二维数组中0索引对应的一维数组的地址值
// System.out.println(arr[0][0]);//1 二维数组中0索引对应的一维数组中0索引对应的值
// System.out.println(arr[0].length);
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
动态初始化:
数据类型[][] 数组名 = new 数据类型[m][n]{{元素1,元素2},{元素1,元素2},{元素1,元素2}};
m表示这个二维数组,可以存放多少个一维数组
n表示每个一维数组,可以存放多少个元素
int[][] arr = new int[2][3];
public class Test2 {
public static void main(String[] args) {
int[][] arr = new int[3][4];
arr[2][0] = 10;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.printf("%d\t",arr[i][j]);
}
System.out.println();
}
}
}
二维数组与内存
Ex1
package day0;
public class Test3 {
public static void main(String[] args) {
int[][] arr = {
{22,66,44},
{77,33,88},
{25,45,65},
{11,66,49}
};
int yearsum = 0;
for (int i = 0; i < arr.length; i++) {
int[] quarter = arr[i];
int res = sum(quarter);
yearsum = yearsum+res;
System.out.println("第"+(i+1)+"季度:"+ res+"元");
}
System.out.printf("全年:"+yearsum);
}
public static int sum(int[] arr){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum = sum+arr[i];
}
return sum;
}
}