java二维数组基础知识详解

  

Java二维数组基础知识详解

什么是Java二维数组?

Java二维数组是一种特殊的数组类型,它是由多个一维数组组成的,通常用于表示矩阵和表格等情景。Java二维数组的每个元素都是一个数组,这个数组里面又包含了多个元素。

Java二维数组的定义与初始化

Java二维数组的定义格式为 数据类型[][] 数组名 = new 数据类型[行数][列数]。其中,行数和列数是可选的,如果不指定,Java会根据您提供的初始化值进行自动判断。

Java二维数组的初始化可以分为两种方式:

直接初始化

直接初始化的格式如下:

int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

代码中,arr是一个二维数组,它有三行三列。其中第一行是 {1, 2, 3},第二行是 {4, 5, 6},第三行是 {7, 8, 9}。我们可以通过下标来访问这些元素。

动态初始化

动态初始化的格式如下:

int[][] arr = new int[3][3];

代码中,arr是一个二维数组,它有三行三列,每个元素都被初始化为0。我们可以在后续代码中,通过下标来访问和修改这些元素。

Java二维数组的遍历与输出

Java二维数组的遍历通常使用两重循环进行,其中外层循环控制行数,内层循环控制列数。例如,以下代码将一个二维数组 arr 中的所有元素输出到控制台:

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();
}

代码中,外层循环 i 控制遍历行数,内层循环 j 控制遍历列数。 arr[i] 表示第 i 行,arr[i][j] 表示第 i 行第 j 列的元素。

Java二维数组的示例说明

以下是两个示例说明,介绍了Java二维数组的应用场景和用法。

示例1:班级成绩统计

假设有一个班级,有10名学生,每名学生考了5门科目。您需要使用Java二维数组来记录这些成绩,并计算每个学生的平均分和班级的平均分。

public class Grade {
    public static void main(String[] args) {
        int[][] scores = {{89, 78, 85, 90, 92},
                          {90, 85, 76, 80, 82},
                          {79, 88, 92, 86, 84},
                          {87, 82, 76, 93, 91},
                          {81, 74, 86, 80, 80},
                          {89, 75, 92, 86, 90},
                          {78, 92, 87, 80, 82},
                          {88, 76, 84, 83, 90},
                          {84, 78, 90, 85, 88},
                          {86, 81, 92, 85, 90}};

        int[] studentTotalScores = new int[10];
        int[] studentAverageScores = new int[10];
        int[] subjectTotalScores = new int[5];
        int[] subjectAverageScores = new int[5];

        int classTotalScore = 0;
        int classAverageScore = 0;

        for (int i = 0; i < scores.length; i++) {
            for (int j = 0; j < scores[i].length; j++) {
                studentTotalScores[i] += scores[i][j];
                subjectTotalScores[j] += scores[i][j];
            }
        }

        for (int i = 0; i < studentTotalScores.length; i++) {
            studentAverageScores[i] = studentTotalScores[i] / 5;
        }

        for (int i = 0; i < subjectTotalScores.length; i++) {
            subjectAverageScores[i] = subjectTotalScores[i] / 10;
        }

        for (int i = 0; i < studentAverageScores.length; i++) {
            classTotalScore += studentAverageScores[i];
        }

        classAverageScore = classTotalScore / 10;

        System.out.println("学生总成绩:" + Arrays.toString(studentTotalScores));
        System.out.println("学生平均成绩:" + Arrays.toString(studentAverageScores));
        System.out.println("科目总成绩:" + Arrays.toString(subjectTotalScores));
        System.out.println("科目平均成绩:" + Arrays.toString(subjectAverageScores));
        System.out.println("班级总成绩:" + classTotalScore);
        System.out.println("班级平均成绩:" + classAverageScore);
    }
}

代码中,二维数组 scores 用于存放学生的成绩信息;数组 studentTotalScoresstudentAverageScores 用于统计每个学生的总成绩和平均成绩;数组 subjectTotalScoressubjectAverageScores 用于统计每门科目的总成绩和平均成绩;变量 classTotalScoreclassAverageScore 用于统计班级的总成绩和平均成绩。

示例2:图像像素处理

假设有一张 $512 \times 512$ 像素的黄色图像,您需要将其中所有的像素点都设置为红色。您可以使用 Java 二维数组来处理这个任务。

public class Image {
    public static void main(String[] args) {
        int[][] pixels = new int[512][512];

        // 将所有像素点设置为红色
        for (int i = 0; i < pixels.length; i++) {
            for (int j = 0; j < pixels[i].length; j++) {
                pixels[i][j] = 0xFF0000;
            }
        }

        // 显示图像
        // ...
    }
}

代码中,二维数组 pixels 用于存放图像像素信息。我们将所有像素点都设置为红色,然后利用Java图像处理的相关类库,显示出生成的图像。

相关文章