Jagged array

In computer science, a ragged array, also known as a jagged array, is an array of arrays of which the member arrays can be of different lengths,[1] producing rows of jagged edges when visualized as output. In contrast, two-dimensional arrays are always rectangular[2] so jagged arrays should not be confused with multidimensional arrays, but the former is often used to emulate the latter.

Memory layout of a jagged array.

Arrays of arrays in languages such as Java, PHP, Python (multidimensional lists), Ruby, C#.Net, Visual Basic.NET, Perl, JavaScript, Objective-C, Swift, and Atlas Autocode are implemented as Iliffe vectors.

Examples

In C# and Java[3] jagged arrays can be created with the following code:[4]

int[][]c;
c = new int[2][]; // creates 2 rows
c[0] = new int[5]; // 5 columns for row 0
c[1] = new int[3]; // create 3 columns for row 1

In C and C++, a jagged array can be created using the following code:

int jagged_row0[] = {0,1};
int jagged_row1[] = {1,2,3};
int *jagged[] = { jagged_row0, jagged_row1 };

In C/C++, jagged arrays can also be created with an array of pointers:

int *jagged[5];

jagged[0] = malloc(sizeof(int) * 10);
jagged[1] = malloc(sizeof(int) * 3);

In C++/CLI, jagged array can be created with the code:[5]

using namespace System;
int main()
{
    array<array<double> ^> ^ Arrayname = gcnew array <array<double> ^> (4); // array contains 4 
    //elements
    return 0;
}

In Python, jagged arrays are not native but one can use list comprehensions to create a multi-dimensional list which supports any dimensional matrix:[6]

multi_list_3d = [[[] for i in range(3)] for i in range(3)]
# Produces: [[[], [], []], [[], [], []], [[], [], []]]

multi_list_5d = [[[] for i in range(5)] for i in range(5)]
# Produces: [[[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []]]

See also

References

  1. Jesse Liberty; Brian MacDonald (18 November 2008). Learning C# 3.0. "O'Reilly Media, Inc.". pp. 210–. ISBN 978-0-596-55420-0.
  2. Don Box (2002). Essential .Net: The Common Language Runtime. Addison-Wesley Professional. p. 138. ISBN 978-0-201-73411-9.
  3. "Jagged Array in Java - GeeksforGeeks". GeeksforGeeks. 2016-02-03. Retrieved 2018-08-13.
  4. Paul J. Deitel; Harvey M. Deitel (26 September 2008). C# 2008 for Programmers. Pearson Education. p. 40. ISBN 978-0-13-701188-9.
  5. "Jagged Arrays". FunctionX. Retrieved 26 November 2014.
  6. "Lists in Python Demystified". Alvin.io. Retrieved 31 January 2016.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.