1.二维数组概述:
①在内存中开辟一个空间,可以保存多个一维数组,每个一维数组可以存储多个同种数据类型的数据.
2.二维数组的定义格式 :3种
①格式1:定义二维数组的同时规定该二维数组中有多少个一 维数组,但是没有规定一维数组中的元素个数,必须要进行初始化一维数组。
语法:数据类型[][] 数组名 = new 数据类型[长度][];
②格式2定义二维数组的同时规定该二维数组中有多少个一维数组,并且规定了一维数组中元素的个数。
缺点:所有的一维数组长度都是固定并且一样。
语法:数据类型[][] 数组名 = new 数据类型[长度][长度];
③格式3:
语法:int[][] arr = {{1,2,3},{4,5,6},{1,2}};
2.2 关于二维数组的取值
语法:数组名[0][2]
【举例说明】
定义一个二维数组,里面有5个一维数组, 但是没有规定一维数组的长度 int[] arr = null; 会返回NullPointerException:空指针异常
// int[][] arr = new int[5][];
// //将二维数组中的一维数组进行初始化
// arr[0] = new int[5];
// arr[1] = new int[10];
// arr[2] = new int[20];
// 为二维数组中的第一个一维数组中的最后一个元素赋值200
// arr[0][4] = 200;
// System.out.println(arr[0][4]);//0
【举例说明】格式二
// int[][] arr = new int[10][10];
得到的是二维数组中的第2个一维数组,并且第八个元素
// System.out.println(arr[1][7]);//0
// arr[1][7] = 250;
// System.out.println(arr[1][7]);
【举例说明】格式三
// int[][] arr = {
// {1,2,3,4,5},
// {6,7,8,9,10},
// {11,23,23,34,123,45,5}
// };
//报错----数组下标越界
System.out.println(arr[2][10]);
// System.out.println(arr[1][1]);//7
//
求二维数组的长度[多少个一维数组]
// System.out.println(arr.length);
3.二维数组的使用:遍历数组,最大值,最小值,求和。
// 求二维数组中总共有多少个元素
int[][] arr = {
{123,34,56,78,234},
{123,456,76987,34},
{123,56,4578709,83},
{234,4765,34,6,12}
};
//外层循环 循环的是二维数组中的一维数组的个数
// 内层循环 循环的是一维数组中的元素个数
for(int i = 0;i<arr.length;i++) {
//为什么是arr[i].length;
for(int j = 0;j<arr[i].length;j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
System.out.println("-------求和--------");
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);
System.out.println("-------最大值或最小值--------");
int max = arr[0][0];
int min = arr[0][0];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if(max < arr[i][j]) {
max = arr[i][j];
}
if(min > arr[i][j]) {
min = arr[i][j];
}
}
}
System.out.println("最大值为: "+max);
System.out.println("最小值为: "+min);
// 统计二维数组中总共的元素有多少个
System.out.println("-------统计个数--------");
int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
count++;
}
}
System.out.println("总个数: "+count+"个");
System.out.println("平均数: "+sum/count);