gpt4 book ai didi

java - 透彻理解Java中的任何多维数组

转载 作者:行者123 更新时间:2023-11-29 07:57:59 25 4
gpt4 key购买 nike

我是一个 Java 初学者,之前也有人问过多维数组的问题,但没有一个答案是清晰简洁的。

例如,当像这样初始化一个二维数组时:

int[][] a = {{1,2,3}}

这只是意味着元素“1”是“第 1 行,第 1 列”,元素“2”是“第 1 行,第 2 列”但是呢

int[][][] b = {{1,2,3}}

这是否意味着元素“1”在 3 维数组 b 中是“1 x,1 y,1 z”?

像这样的多维数组呢:

int[][][][] c = {{1,2,3}}

你会如何想象?这是因为我读过的所有教科书都没有描述超过二维数组的数组。他们只会说,无数次元阵存在。但我无法想象它们。

请帮助我尽可能清楚地回答这个问题,以便任何其他用户只需阅读答案就能够完全掌握任何多维数组。

最佳答案

您的代码示例都不是合法的 Java。本声明:

int[][] a;

a 声明为 int 数组的数组。 (Java 实际上没有二维数组。)您可以使用数组数组对其进行初始化:

int[][] a = { {1, 2, 3}, {4, 5, 6} };

但是,您不能使用 {1, 2, 3} 进行初始化,因为 {1, 2, 3} 是一个 int[] ,不是 int[][](也就是说,“int 数组”与“int 数组的数组”类型不同>").

类似的考虑也适用于其他情况。例如:

int[][][][] c;

声明了 int 数组的数组数组。

一旦理解了数组数组的基本概念,理解具体的声明就不难了。例如:

int[][][] b = new int[3][4][2];

声明b是一个长度为3的数组。b的每个元素都是一个4个数组的数组,每个数组都是2个int的数组 值。像往常一样,所有 int 值都初始化为 0。您不必初始化尾随维度:

int[][][] b = new int[3][][];

声明 b 是一个长度为 3 的数组。每个元素都必须是 int[][],但最初所有元素都将为 null

不要求元素具有相同的长度。因此,例如,b[1] 可能被设置为长度为 7 的数组,而 b[2] 可能具有长度 12。

Java Language Specification详细介绍了数组的创建。

关于java - 透彻理解Java中的任何多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16227421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com