Java 中的锯齿数组2025 年 5 月 9 日 | 阅读 9 分钟 Java 中的锯齿数组是数组的集合,其中每个数组可能包含不同数量的元素。相比之下,二维数组要求所有行和列具有相同的长度。 锯齿数组也称为“不规则数组”或“异形数组”。可以通过在声明中指定每个数组的大小来创建它们。例如,一个有三行的锯齿数组,第一行可以有三个元素,第二行有两个元素,第三行有四个元素。 锯齿数组示例一个有三行的锯齿数组,第一行可以有三个元素,第二行有两个元素,第三行有四个元素。 锯齿数组的声明和初始化在 Java 中,可以使用以下语法声明和初始化锯齿数组: 语法 在这里,datatype 是数组中元素的数据类型,numRows 是锯齿数组中的行数,numColumns1、numColumns2、...、numColumnsN 是每行的列数。用户应该知道,每行的列数是灵活的。 第一行创建一个包含 numRows 行的数组的数组。默认情况下,每一行都初始化为 null。 后续行初始化锯齿数组的每一行。为锯齿数组的相应行创建一个包含 numColumns 个元素的新一维数组并将其分配给它。 初始化锯齿数组的方法除了如上一个答案所示的标准声明和初始化锯齿数组的方法外,还有几种其他方法可以在 Java 中初始化锯齿数组。 1. 使用数组字面量我们可以直接使用数组字面量来初始化锯齿数组元素,如下所示: 在这里,我们创建了一个有三行的锯齿数组,其中第一行有两个元素,第二行有三个元素,第三行有四个元素。 示例编译并运行输出 1 2 3 4 5 6 7 8 9 2. 使用嵌套循环当元素需要以编程方式生成时,我们还可以使用嵌套循环来初始化锯齿数组元素。采用这种方法可能很有益。 在这里,我们设计了一个有三行的锯齿数组,第一行包含一个元素,第二行包含两个元素,第三行包含三个元素。使用简单的公式,嵌套循环生成锯齿数组中的元素。 示例编译并运行输出 1 2 3 4 5 6 7 8 9 10 3. 使用 Java 8 Stream API使用 Java 8 Stream API,您可以使用 Arrays.stream 和 toArray 方法在一行中创建和初始化锯齿数组,如下所示: 在这里,我们创建了一个有三行的锯齿数组,第一行有两列,第二行有三列,第三行有四列。Arrays.stream 方法将每个一维数组转换为整数流,然后 toArray 方法将流收集到一个锯齿数组中。 示例编译并运行输出 1 2 3 4 5 6 7 8 9 4. 动态锯齿数组在 Java 中,我们可以通过创建一个数组的数组来创建动态锯齿数组,其中每个子数组代表二维数组中的一行。然后,我们可以为每个子数组分配内存来指定其列数。 示例编译并运行输出 Enter the number of sub-arrays: 3 Enter the size of sub-array 1: 2 Enter the element at index 0 of sub-array 1: 1 Enter the element at index 1 of sub-array 1: 2 Enter the size of sub-array 2: 3 Enter the element at index 0 of sub-array 2: 3 Enter the element at index 1 of sub-array 2: 4 Enter the element at index 2 of sub-array 2: 5 Enter the size of sub-array 3: 1 Enter the element at index 0 of sub-array 3: 6 The jagged array is: 1 2 3 4 5 6 锯齿数组的优点与具有固定大小的多维数组相比,锯齿数组有几个优点。
锯齿数组与多维数组有何不同?锯齿数组与多维数组不同。锯齿数组与多维数组之间存在一些差异,这些差异在下表中有所描述。
锯齿数组选择题1. Java 中的锯齿数组是什么?
答案 3) 解释:锯齿数组是数组的数组,其中每行的列数可以不同。 2. 以下代码的输出是什么?
答案 3) 解释:jagged[1][1] 指的是第二行和第二个元素,即 5。 3. 以下哪项正确声明了 Java 中具有 3 行的锯齿数组?
答案 2) 解释:在 Java 中,要创建锯齿数组,我们首先定义行数。列的大小可以稍后单独指定。 4. 关于锯齿数组,哪个陈述是正确的?
答案 2) 解释:锯齿数组可以具有列长度不同的行,这使其适用于不均匀的数据。 5. 此代码的输出是什么?
答案 2) 解释:jagged[1] 有 3 个元素,因此 jagged[1].length 为 3。 下一个主题Java 数组程序 |
我们请求您订阅我们的新闻通讯以获取最新更新。