Tài liệu Mảng, Chỉ Mục, Tập Hợp phần 3 - Pdf 10

Mảng đa chiều có kích khác nhau

Cũng như giới thiệu trước kích thước của các chiều có thể không bằng nhau, điều
này khác với mảng đa chiều cùng kích thước. Nếu hình dạng của mảng đa chiều cùng
kích thước có dạng hình chữ nhật thì hình dạng của mảng này không phải hình chữ nhật
vì các chiều của chúng không điều nhau.
Khi chúng ta tạo một mảng đa chiều kích thước khác nhau thì chúng ta khai báo
số
dòng trong mảng trước. Sau đó với mỗi dòng sẽ giữ một mảng, có kích thước bất
kỳ. Những mảng này được khai báo riêng. Sau đó chúng ta khởi tạo giá trị các thành
phần trong những mảng bên trong.
Trong mảng này, mỗi chiều là một mảng một chiều. Để khai báo mảng đa chiều có
kích thước khác nhau ta sử dụng cú pháp sau, khi đó số ngoặc chỉ ra số chiều của mảng:
<kiểu dữ liệu> [] []
Ví d
ụ, chúng ta có thể khai báo mảng số nguyên hai chiều khác kích thước tên
myJagged- Array như sau:
int [] [] myJaggedArray;
Chúng ta có thể truy cập thành phần thứ năm của mảng thứ ba bằng cú pháp:
myJagged- Array[2][4].
Ví dụ 9.6 tạo ra mảng khác kích thước tên myJaggedArray, khởi tạo các thành phần,
rồi sau đó in ra màn hình. Để tiết kiệm thời gian, chúng ta sử dụng mảng các số nguyên
để các thành phần của nó được tự động gán giá trị mặc định. Và ta chỉ cần gán một số
giá trị c
ần thiết.

Ví dụ 9.6: Mảng khác chiều. namespace Programming_CSharp


jaggedArray[2][1] = 9;
jaggedArray[2][2] = 99;
jaggedArray[3][0] = 10;
jaggedArray[3][1] = 11;
jaggedArray[3][2] = 12;
jaggedArray[3][3] = 13;
jaggedArray[3][4] = 14;
for(int i = 0; i < 5; i++)
{Console.WriteLine(“jaggedArray[0][{0}] =
{1}”, i, jaggedArray[0][i]);
}for(int i = 0; i < 2; i++)

{Console.WriteLine(“jaggedArray[1][{0}] =
{1}”, i, jaggedArray[1][i]);


Kết quả:
jaggedArray[0][0] = 0
jaggedArray[0][1] = 0
jaggedArray[0][2] = 0
jaggedArray[0][3] = 15
jaggedArray[0][4] = 0
jaggedArray[1][0] = 0
jaggedArray[1][1] = 12
jaggedArray[2][0] = 0
jaggedArray[2][1] = 9
jaggedArray[2][2] = 99
jaggedArray[3][0] = 10
jaggedArray[3][1] = 11
jaggedArray[3][2] = 12
jaggedArray[3][3] = 13
jaggedArray[3][4] = 14 Trong ví dụ này, mảng được tạo với bốn dòng:

int[][] jaggedArray = new int[rows][];
Chú ý rằng chiều thứ hai không xác định. Do sau đó chúng ta có thể khai báo mỗi
dòng có kích thước khác nhau. Bốn lệnh sau tạo cho mỗi dòng một mảng một
chiều có kích thước khác nhau: // dòng đầu tiên có 5 phần tử
jaggedArray[0] = new int[5];
// dòng thứ hai có 2 phần tử
jaggedArray[1] = new int[2];


{using System;

// tạo lớp để lưu trữ trong mảng
public class Employee
{public Employee( int empID)

{this.empID = empID;

}

public override string ToString()

{return empID.ToString();


// in ra từng thành phần trong mảng
foreach (object obj in theArray)
{// trình biên dịch sẽ gọi obj.ToString()
Console.WriteLine(“Value: {0}”,
obj);
}

}static void Main()

{// tạo mảng các đối tượng Employee

Employee[] myEmployeeArray = new Employee[3];

// khởi tạo các đối tượng của mảng
for (int i = 0; i < 3; i++)
{myEmployeeArray[i] = new Employee(i+5);

}

Kết quả:

Contents of the Array Programming_CSharp.Employee[]
Value: 5
Value: 6

Value: 7

Contents of the Array Programming_CSharp.String[]
Value: hello
Value: world

Ví dụ 9.7 bắt đầu bằng việc tạo một lớp đơn giản Employee như các ví dụ trước. Lớp
Tester bây giờ được thêm một phương thức tĩnh PrintArray() để xuất nội dung của
mảng, phương thức này có khai báo một tham số là mảng một chiều các đối tượng
object:
public static void PrintMyArray( object[] theArray)
object là lớp cơ s
ở ngầm định cho tất cả các đối tượng trong môi trường .NET, nên nó
được khai báo ngầm định cho cả hai lớp string và Employee.
Phương thức PrintArray thực hiện hai hành động. Đầu tiên, là gọi phương thức
ToString() của mảng:

Console.WriteLine(“Contents of the Array {0}”, theArray.ToString());
Tên của kiểu dữ liệu mảng được in ra:

Contents of the Array Programming_CSharp.Employee[]
public static void PrintArray(object[] theArray)

{foreach( object obj in theArray)

{Console.WriteLine(“Value: {0}”, obj);

}Console.WriteLine(“\n”);

}static void Main()

{string[] myArray =

{

}
Kết quả:

Value: Who
Value: is
Value: Kitty
Value: Mun Value: Mun
Value: Kitty
Value: is
Value: Who Value: Chung
Value: toi
Value: la
Value: nhung
Value: nguoi
Value: lap

”lap”,”trinh”, “máy”, “tính”
Sau khi gọi phương thức Array.Sort() thì các thành phần của mảng được sắp xếp lại theo
thứ tự alphabe: Value: Chung Value: la Value: lap Value: may Value: nguoi Value: nhung
Value: tinh Value: toi Value: trinh
Bộ chỉ mục


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status