目录
1、二维数组
2、二维数组的使用
1、二维数组
(1)Java中操作多位数组的语法与一维数组类似。在实际应用中,三维以上的数组很少使用,主要使用二维数组。
(2)二维数组是一个元素为一维数组的一维数组。
(3)从语法上Java支持多维数组,但从内存分配原理的角度看,Java中只有一维数组,没有多维数组。或者说,从表面上是多维数组,实质上都是一维数组。
(4)定义二维数组的语法格式如下:
数据类型[][] 数组名;
或者:
数据类型 数组名[][];
--->数据类型为数组元素的类型。
--->“[][]”用于表明定义了一个二维数组,通过多个下标进行数据访问。
--->“数组名[下标]”表示二维数组里的一个元素,这个元素还是一个一维数组。
--->“数组名[下标][下标]”表示二维数组里的一个元素(一维数组)里的一个元素。
public static void main(String[] args) {
// 二维数组声明: 数据类型[][] 数组名; 或者 数据类型 数组名[][];
int[][] nums;
String[][] strs;
// 分配空间: 数组名 = new 数据类型[数组长度][数组长度]; 或 数组名 = new 数据类型[数组长度][];
nums = new int[3][5];// nums是一个长度为3的二维数组,这个二维数组里的元素都是一个长度为5的一维数组
strs = new String[5][]; // strs是一个长度为5的二维数组,这个二维数组里的元素长度不相同
//赋值: 数组名[下标][下标] = 数据;
nums[0][0] = 10;
nums[0][1] = 20;
nums[0][2] = 30;
nums[0][3] = 40;
nums[0][4] = 50;
nums[1][0] = 100;
nums[1][1] = 200;
nums[1][2] = 300;
nums[1][3] = 400;
nums[1][4] = 500;
nums[2][0] = 10;
nums[2][1] = 20;
nums[2][2] = 30;
nums[2][3] = 40;
//操作数据:数组名[下标][下标]
System.out.println(nums[1][2]);
nums[2][0]+=50;
System.out.println(nums[2][0]);
}
2、二维数组的使用
(1)初始化二维数组
二维数组初始化的语法格式如下:
数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};
或者:
数据类型[][] 数组名 = {{元素1,元素2,···,元素n},{元素1,元素2,···,元素n},···,{元素1,元素2,···,元素n}};
public static void main(String[] args) {
//二维数组声明、分配空间合并写: 数据类型[][] 数组名 = new 数据类型[长度][长度]; 或 数据类型[][] 数组名 = new 数据类型[长度][];
int[][] nums = new int[3][4];
char[][] chs = new char[5][];
//二维数组声明、分配空间、赋值合并写:
//数据类型[][] 数组名 = new 数据类型[][]{{数据1,数据2,...,数据n},{数据1,数据2,...,数据m},....,{数据1,数据2,...,数据k}};
boolean[][] bools = new boolean[][]{{true},{true,false},{false,false,true,false}};
//二维数组声明、分配空间、赋值合并写的简写方式
//数据类型[][] 数组名 = {{数据1,数据2,...,数据n},{数据1,数据2,...,数据m},....,{数据1,数据2,...,数据k}};
float[][] floats ={{12.5F},{99.5F,55.5F},{99.9F},{10.5F,12.5F,85.5F,56.3F,78.5F}};
}
(2)二维数组的遍历
格式如下:
for(int i = 0;i<数组名.length;i++){
for(int j = 0;j<数组名[i].length;j++){
System.out.println(数组名[i][j]);
}
}
public static void main(String[] args) {
// 要求对3个班各6名学生某门课程的成绩进行各种操作,如何实现?
// 声明一个长度为3的二维数组,这个二维数组里的元素都是长度为6的一维数组
int[][] scores = { { 99, 86, 75, 94, 45, 60 },
{ 100, 78, 55, 86, 94, 30 }, { 100, 99, 88, 66, 77, 89 } };
// 遍历这个二维数组
for (int i = 0; i < scores.length; i++) {
// System.out.println(scores[i]);//scores[i]还是一个一维数组,这个一维数组里存储的是各个班级学生的成绩,输出scores[i]输出的是这个一维数组的地址值,我们需要将这个一维数组里的元素取出来
// 声明一遍变量来累加各个班的成绩之和:
int sum = 0;
System.out.println("第" + (i + 1) + "个班学生成绩分别是:");
for (int j = 0; j < scores[i].length; j++) {
System.out.print("第" + (j + 1) + "名学生成绩:");
System.out.println(scores[i][j]);
sum += scores[i][j];
}
System.out.println("第" + (i + 1) + "个班学生成绩之和是:" + sum);
int avg = sum / scores[i].length;
System.out.println("第" + (i + 1) + "个班学生平均成绩是:" + avg);
}
}
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,请关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。
文章转自:12、JAVA入门——二维数组_Java-答学网
作者:答学网,转载请注明原文链接:http://www.dxzl8.com/