gpt4 book ai didi

java - 为什么在 Java 的 2D/3D 数组中需要行大小而列大小是可选的?

转载 作者:行者123 更新时间:2023-12-05 01:07:40 25 4
gpt4 key购买 nike

我总是很困惑,为什么 Java 中的 2D 数组对声明行的大小而不是列的大小有严格的要求,这进一步混淆了 3D 和 4D 数组。

// Invalid, 2D array with no row and no column?
int[][] arr = new int[][];
// Valid, 2D array of size 2X3
int[][] arr = new int[2][3];
// Valid, column size is not specified, size of 2D array?
int[][] arr = new int[2][];
// Valid, column size is not specified, size of 3D array?
int[][][] arr = new int[2][][];

最佳答案

它允许您延迟决定列数,以及为不同的行定义不同的列数。

例如:

int [][] arr = new int[2][];

arr[0] = new int[5];
arr[1] = new int[3];

数组的第一行有 5 列,但第二行只有 3 列。如果在声明二维数组时指定列数,这是不可能的。

如果您将多维数组视为一维数组,其元素本身就是低维数组,这可能会变得不那么令人困惑。

所以二维 int 数组 (int[][]) 是一维数组,其元素是 int 数组 (int[])。

你可以通过指定元素的数量来实例化这个数组:

int[][] arr = new int[2][];

它为您提供了一个包含两个 int[] 元素的数组,其中 2 元素被初始化为 null

这类似于初始化某个引用类型的数组:

Object[] arr = new Object[2];

它为您提供了一个包含两个 Object 元素的数组,其中 2 元素被初始化为 null

new int[2][3] 实例化实际上是一种特殊情况——因为它同时实例化了外部数组(具有 2 个元素的数组)和内部数组(每个具有 3 个元素) ,它们是外部数组的元素。

关于java - 为什么在 Java 的 2D/3D 数组中需要行大小而列大小是可选的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67190059/

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