Mảng răng cưa (Jagged Array) là mảng của các mảng. Khai báo mảng răng cưa tên scores kiểu int:
int[][] scores;
Ví dụ
using System;
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
// Mảng răng cưa: 5 mảng con, mỗi mảng con 2 phần tử
int[][] a = new int[][]
{
new int[] { 0, 0 },
new int[] { 1, 2 },
new int[] { 2, 4 },
new int[] { 3, 6 },
new int[] { 4, 8 }
};
int i, j;
// Xuất từng phần tử
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
}
Console.ReadKey();
}
}
}
Kết quả
a[0][0] = 0 a[0][1] = 0 a[1][0] = 1 a[1][1] = 2 a[2][0] = 2 a[2][1] = 4 a[3][0] = 3 a[3][1] = 6 a[4][0] = 4 a[4][1] = 8
Đặc điểm mảng răng cưa
- Mỗi hàng có thể có độ dài khác nhau
- Cấp phát bộ nhớ không liên tục (khác mảng đa chiều)
- Truy cập:
a[i][j](hai cặp ngoặc vuông) - Khởi tạo:
new int[3][]tạo 3 hàng, mỗi hàng null, cần khởi tạo từng hàng
Ví dụ hàng độ dài khác nhau:
int[][] jagged = new int[3][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5, 6 };
jagged[2] = new int[] { 7 };