多维数组

Posted buildnewhomeland

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多维数组相关的知识,希望对你有一定的参考价值。

技术图片
上面这张表格实际上是一个n行*6列的二维数组。

多维数组的语法:

double[] arrayName = double[n]; // (一维)数组,数组长度为n
double[][] dimensionArrayName = double[m][n]; // 二维数组(m行 * n列)
double[][][] threeDimensionArrayName = double[x][y][z] // 三维数组

注意:每一个中括号表示一个维度。

习题

设计一个程序,可以保存n年的各科成绩,可以对这些年的成绩进行查询。
测试用例:保存3年的成绩,查询第三年的生物成绩。

import java.util.Scanner;

public class Example2 {
    public static void main(String[] args) {
        // 为每一门课程设置下标
        int ChineseIndex = 0;
        int MathIndex = 1;
        int EnglishIndex = 2;
        int PhysicalIndex = 3;
        int ChemistryIndex = 4;
        int BiologyIndex = 5;

        // 创建一个数组保存每一门课的名称
        String[] names = new String[6];
        names[ChineseIndex] = "语文";
        names[MathIndex] = "数学";
        names[EnglishIndex] = "英语";
        names[PhysicalIndex] = "物理";
        names[ChemistryIndex] = "化学";
        names[BiologyIndex] = "生物";

        Scanner in = new Scanner(System.in);
        System.out.println("存放几年的成绩呢?");
        int years; // 存放成绩多少年的年数
        years = in.nextInt();

        // 创建一个二维数组来存放每门课的成绩 行表示年数,列表示科目数
        double[][] scores = new double[years][names.length];

        // 随机生成80-100的成绩放入二维数组中
        for (int i = 0; i < years; i++) {
            for (int j = 0; j < names.length; j++) {
                scores[i][j] = 80 + Math.random() * 20;
                System.out.println("第" + (i + 1) + "年的" + names[j] + "成绩为:" + scores[i][j]);
            }
        }

        // 查询某一年的某一课程的成绩
        System.out.println("您要查询哪一年的成绩呢?");
        int whichYear = in.nextInt() - 1;
        System.out.println("哪一门成绩呢?");
        int whichLesson = in.nextInt() - 1;

        System.out.println("第" + (whichYear + 1) + "年的" + names[whichLesson] + "成绩为" + scores[whichYear][whichLesson]);
    }
}

技术图片
技术图片

以上是关于多维数组的主要内容,如果未能解决你的问题,请参考以下文章

将多维数组从托管代码传递到非托管代码

PHP如何将嵌套的foreach变成数组的数组(多维数组)

C 语言数组 ( 多维数组本质 | 步长角度 理解 多维数组本质 )

循环多维数组以生成谷歌图表的多维数组

使用 for 循环创建多维数组

php计算多维数组某个值的和