浅谈Java中的一维数组、二维数组、三维数组、多维数组攻略
在Java中,数组是用于存储同一种类型数据的连续空间,可以存储一维、二维、三维乃至多维数据。本文将详细讲解Java中的一维数组、二维数组、三维数组、多维数组的定义、初始化、遍历等操作。
一维数组
一维数组也称为向量,是最简单的一种数组结构,元素按照线性序列排列。在Java中定义一位数组的方式如下:
数据类型[] 数组名 = new 数据类型[数组大小];
其中,数据类型为数组元素的数据类型,数组名为数组的名称,数组大小为数组容量,也就是数组可以存储的元素个数。例如,以下是创建一个整型一维数组的示例:
int[] arr1 = new int[5];
在初始化数组后,可以通过下标访问并修改数组元素,下标从0开始,例如对数组第二个元素进行赋值操作:
arr1[1] = 10;
二维数组
二维数组也称为矩阵,由多个一维数组构成,可以看作是元素以行和列的形式排列。在Java中定义二维数组的方式如下:
数据类型[][] 数组名 = new 数据类型[行数][列数];
例如,以下是创建一个整型二维数组的示例:
int[][] arr2 = new int[2][3];
初始化二维数组后,可以使用双重循环遍历数组并修改其中元素的值:
for (int i = 0; i < arr2.length; i++) {
for (int j = 0; j < arr2[i].length; j++) {
arr2[i][j] = i + j;
}
}
三维数组
三维数组可以看作是由多个二维数组构成,其中的元素以层、行和列的形式排列。在Java中定义三维数组的方式如下:
数据类型[][][] 数组名 = new 数据类型[层数][行数][列数];
例如,以下是创建一个整型三维数组的示例:
int[][][] arr3 = new int[2][3][4];
初始化三维数组后,可以使用三重循环遍历数组并修改其中元素的值:
for (int i = 0; i < arr3.length; i++) {
for (int j = 0; j < arr3[i].length; j++) {
for (int k = 0; k < arr3[i][j].length; k++) {
arr3[i][j][k] = i + j + k;
}
}
}
多维数组
多维数组可以看作是由多个一维、二维或三维数组等构成,其中的元素以多维形式排列。在Java中定义多维数组的方式比较简单,只需在定义时增加一维即可。
例如,以下是一个由一维、二维、三维数组构成的多维数组定义示例:
int[][][] arr4 = new int[2][3][];
arr4[0][0] = new int[2];
arr4[0][1] = new int[3];
arr4[0][2] = new int[4];
arr4[1][0] = new int[5];
arr4[1][1] = new int[6];
arr4[1][2] = new int[7];
上述定义中,arr4是一个由两个大小为3的数组构成的数组,其中每个二级数组都有不同的大小。
示例说明1
下面的示例展示了如何创建一个存储三门科目成绩的二维数组,并用随机数初始化成绩。然后计算每个学生的平均成绩和每门课的平均成绩。
import java.util.Random;
public class ArrayExample1 {
public static void main(String[] args) {
int[][] scores = new int[5][3];
Random rand = new Random();
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores[i].length; j++) {
scores[i][j] = rand.nextInt(101);
System.out.print(scores[i][j] + " ");
}
System.out.println();
}
double[] stuAvg = new double[5];
double[] subjAvg = new double[3];
for (int i = 0; i < scores.length; i++) {
double sum = 0.0;
for (int j = 0; j < scores[i].length; j++) {
sum += scores[i][j];
subjAvg[j] += scores[i][j];
}
stuAvg[i] = sum / scores[i].length;
}
for (int i = 0; i < subjAvg.length; i++) {
subjAvg[i] /= scores.length;
}
System.out.println("每个学生的平均成绩:");
for (double avg : stuAvg) {
System.out.println(avg);
}
System.out.println("每门课的平均成绩:");
for (double avg : subjAvg) {
System.out.println(avg);
}
}
}
输出结果:
64 47 11
98 58 80
88 76 8
20 91 82
31 10 85
每个学生的平均成绩:
40.666666666666664
78.66666666666667
57.333333333333336
64.33333333333333
42.0
每门课的平均成绩:
60.2
56.4
53.2
示例说明2
下面的示例演示了如何定义和初始化一个三维字符数组,并输出其中元素的值。
public class ArrayExample2 {
public static void main(String[] args) {
char[][][] cube = {{{'O','O','O'}, {'O','O','O'}, {'O','O','O'}},
{{'R','R','R'}, {'R','R','R'}, {'G','G','G'}},
{{'G','G','G'}, {'G','G','G'}, {'W','W','W'}},
{{'W','W','W'}, {'W','W','W'}, {'B','B','B'}},
{{'B','B','B'}, {'B','B','B'}, {'Y','Y','Y'}},
{{'Y','Y','Y'}, {'Y','Y','Y'}, {'O','O','O'}}};
for (int i = 0; i < cube.length; i++) {
System.out.print("[");
for (int j = 0; j < cube[i].length; j++) {
System.out.print("[");
for (int k = 0; k < cube[i][j].length; k++) {
System.out.print(cube[i][j][k] + ",");
}
System.out.print("],");
}
System.out.println("]");
}
}
}
输出结果:
[[O,O,O],[O,O,O],[O,O,O]],
[[R,R,R],[R,R,R],[G,G,G]],
[[G,G,G],[G,G,G],[W,W,W]],
[[W,W,W],[W,W,W],[B,B,B]],
[[B,B,B],[B,B,B],[Y,Y,Y]],
[[Y,Y,Y],[Y,Y,Y],[O,O,O]],
以上就是Java中一维数组、二维数组、三维数组、多维数组的详细讲解,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈java中的一维数组、二维数组、三维数组、多维数组 - Python技术站