2012-10-06 38 views

Trả lời

23

string[,]multidimensional array.

multidimensional array

string[][] là một Jagged array:

Một mảng lởm chởm là một mảng mà các phần tử là mảng. Các thành phần của một mảng răng cưa có thể có kích thước và kích thước khác nhau. Một mảng lởm chởm đôi khi được gọi là "mảng mảng."

Jagged array

6

string[,]-Multidimensional Arrary (mảng hình chữ nhật)

đa chiều có thể có nhiều hơn một chiều. Ví dụ sau đây cho thấy cách tạo mảng hai chiều của hai hàng và hai cột.

Tuyên bố:

string[,] contacts; 

õ:

string[,] contacts = new string[2,2]; 

khởi:

string[,] contacts = new string[2, 2] { {"John Doe","[email protected]"}, {"Jane Doe","[email protected]"} }; 



string[ ][ ] - Jagged Array (Mảng-mảng)

Mảng răng cưa là mảng có phần tử là mảng. Các yếu tố của một mảng răng cưa có thể có kích thước và kích thước khác nhau. Mảng lởm chởm đôi khi được gọi là "mảng mảng."

Mảng có răng cưa có thể lưu trữ hiệu quả nhiều hàng có độ dài khác nhau. Có thể sử dụng bất kỳ loại dữ liệu, tham chiếu hoặc giá trị nào. Lập chỉ mục các mảng bị lởm chởm là nhanh. Phân bổ chúng hơi chậm.

mảng Jagged là nhanh hơn so với mảng đa chiều

Tuyên bố:

string[][] contacts; 

õ:

string[][] contacts = new string[2][]; 
for (int i = 0; i < contacts.Length; i++) 
{ 
    contacts[i] = new string[3]; 
} 

khởi:

string[][] contacts = new string[2][] { new string[] {"[email protected]","[email protected]"}, new string[] {"[email protected]","[email protected]","[email protected]"} }; 
+0

Xem cách tôi chỉnh sửa câu trả lời của bạn và bạn sẽ tìm hiểu cách chèn liên kết ... – aleroot

4

string[][] như một jagged array

Một mảng lởm chởm là một mảng mà các phần tử là mảng. Các yếu tố của một mảng lởm chởm có thể có kích thước và kích thước khác nhau. Một mảng lởm chởm đôi khi được gọi là "mảng mảng."

trong khi string[,]multidimensional array

Mảng thể có nhiều hơn một chiều

1

string[][](Jagged Arrays) là mảng của mảng với số cố định của các hàng và chiều dài thay đổi các cột trong khi string[,](Rectangular Mảng) là ma trận với số hàng cố định và cột. Có một cuộc thảo luận tốt over there

2

Hai khía cạnh của sự khác biệt rất quan trọng:

Memory-khôn ngoan:

[n, m] - lưu như một bó dài bộ nhớ, như thể nó là [ n * m] [n] [m] - Đã lưu dưới dạng mảng đơn giản có kích thước n, trong đó mỗi phần tử là một con trỏ tới một mảng có kích thước m.

Access-khôn ngoan:

[n, m] - Để truy cập di động i, j những gì thực sự xảy ra là phải mất con trỏ của [n * m] mảng và bù đắp nó bằng n * chiều rộng + m, và sau đó truy cập vào giá trị. [n] [m] - Để truy cập vào ô i, bạn chỉ cần truy cập vào con trỏ mảng con tại chỉ số n (offset # 1), và sau đó truy nhập mảng con tại chỉ mục m (offset # 1).

[] [] Tốt hơn cả về hai mặt. Hiệu quả hơn khi truy cập và linh hoạt hơn trong bộ nhớ. Ngoài ra, bạn có thể truy cập một hàng đơn lẻ một lần và xử lý nó thậm chí hiệu quả hơn, vì bạn không thực hiện truy cập đa chiều đầy đủ cho mỗi ô trong hàng đó.

Tuy nhiên, lợi thế của [,]: Bạn luôn biết rằng chiều rộng của ma trận được cố định. Sử dụng [] [], mỗi mảng phụ có thể có độ dài khác nhau và thậm chí có thể là rỗng. Điều này có thể được coi là một lợi thế, mặc dù điều ngược lại cũng có thể hữu ích.

Các vấn đề liên quan