不规则数组和锯齿形数组

14

什么是“ragged array”和“jagged array”的区别?根据我的研究,两者都具有相同的定义,即具有不同列长度的二维数组。


5
据我所知,这只是同一事物的两个名称。 - Jsdodgers
2
它们的意思是相同的。 - Kon
好的,为什么会有不同的名称呢?可能是因为编程语言的特定原因吗? - Nitesh Verma
1
你的定义唯一的问题在于,不规则/锯齿状数组可以拥有超过2个维度。 - Stephen C
4个回答

20

你的问题已经说明了正确答案^^但为了完整起见。

一个锯齿状数组或者叫不规则数组是一个n维数组,它不需要是矩形的,也就是说:

int[][] array = {{3, 4, 5}, {77, 50}};

如果您需要更多示例,可以在这里这里查看!


你可以分享一些链接让我了解更多关于它们的内容吗? - Nitesh Verma

0

锯齿数组是由多个数组组成的数组,其中成员数组的大小可以不同,即我们可以创建一个二维数组,但每行中列数可以是可变的。这种类型的数组也被称为不规则数组。

Contents of 2D Jagged Array
0 
1 2 
3 4 5 
6 7 8 9 
10 11 12 13 14 

http://www.geeksforgeeks.org/jagged-array-in-java/


0

不规则数组也被称为嵌套数组

1- 嵌套数组是非均匀数组

2- 内部数组无法初始化,因此以下代码片段将失败

   double[][] jagged = new double[2][3]; //error

3- 相反,每个内部数组都是单独初始化的

   double[][] jagged = new double[2][];
   jagged[0] = new double[5];
   jagged[1] = new double[7];

double[][] jagged = new double[2][3]; 是有效的Java代码,对吧?你的意思是它只是不是一个不规则数组,这才是“错误”的吗? - mic

-3

不规则数组:是一个多维数组,每个维度的大小不同

例如:

10 20 30
11 22 22 33 44
77 88

不规则数组: 一个数组中的每个项都是另一个数组。

C# 代码:

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];

1
这真的没有什么区别吗? - Tator
那么实际上有什么区别呢? - Bhupendra Shukla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接