Giáo trình hướng dẫn khởi tạo mảng một chiều bằng cách sử dụng danh sách các giá trị bên trong dấu ngoặc p8 - Pdf 19

Ngôn Ngữ Lập Trình C#
// phương thức tĩnh để nhận đối tượng Comparer
public static EmployeeComparer GetComparer()
{
return new Employee.EmployeeComparer();
}
public int CompareTo(Object rhs)
{
Employee r = (Employee) rhs;
return this.empID.CompareTo(r.empID);
}
// thực thi đặc biệt được gọi bởi custom comparer
public int CompareTo(Employee rhs,
Employee.EmployeeComparer.ComparisionType which)
{
switch (which)
{
case Employee.EmployeeComparer.ComparisionType.EmpID:
return this.empID.CompareTo( rhs.empID);
case Employee.EmployeeComparer.ComparisionType.Yrs:
return this.yearsOfSvc.CompareTo( rhs.yearsOfSvc);
}
return 0;
}
// lớp bên trong thực thi IComparer
public class EmployeeComparer : IComparer
{
// định nghĩa kiểu liệt kê
public enum ComparisionType
{
EmpID,

static void Main()
{
ArrayList empArray = new ArrayList();
Random r = new Random();
// đưa vào mảng
for(int i=0; i < 5; i++)
{
empArray.Add( new Employee(r.Next(10)+100, r.Next(20)));
}
// hiển thị tất cả nội dung của mảng Employee
for(int i=0; i < empArray.Count; i++)
{
Console.Write(“\n{0} ”, empArray[i].ToString());
}
Console.WriteLine(“\n”);
// sắp xếp và hiển thị mảng
Employee.EmployeeComparer c = Employee.GetComparer();
c.WhichComparision =
Employee.EmployeeComparer.ComparisionType.EmpID;
Mảng, Chỉ Mục, và Tập Hợp
259
Ngôn Ngữ Lập Trình C#
empArray.Sort(c);
// hiển thị nội dung của mảng
for(int i=0; i < empArray.Count; i++)
{
Console.Write(“\n{0} ”, empArray[i].ToString());
}
Console.WriteLine(“\n”);
c.WhichComparision = Employee.EmployeeComparer.ComparisionType.Yrs;

Ngôn Ngữ Lập Trình C#
Khối đầu tiên hiển thị kết quả thứ tự vừa nhập vào. Trong đó giá trị của empID, và
yearsOfSvc được phát sinh ngẫu nhiên. Khối thứ hai hiển thị kết quả sau khi sắp theo empID,
và khối cuối cùng thể hiện kết quả được xếp theo năm phục vụ.
Hàng đợi (Queue)
Hàng đợi là một tập hợp trong đó có thứ tự vào trước và ra trước (FIFO). Tương tự như là
những người mua vé tàu, họ xếp thành một hàng, người nào vào trước thì sẽ mua trước và ra
trước. Hàng đợi là kiểu dữ liệu tốt để quản lý những nguồn tài nguyên giới hạn. Ví dụ, chúng
ta muốn gởi thông điệp đến một tài nguyên mà chỉ xử lý được duy nhất một thông điệp một
lần. Khi đó chúng ta sẽ thiết lập một hàng đợi thông điệp để xử lý các thông điệp theo thứ tự
đưa vào.
Lớp Queue thể hiện kiểu dữ liệu như trên, trong bảng 9.4 sau liệt kê những phương thức và
thuộc tính thành viên.
Phương thức- thuộc tính Mục đích
Synchronized() Phương thức static trả về một Queue wrapper được
thread-safe.
Count Thuộc tính trả về số thành phần trong hàng đợi
IsReadOnly Thuộc tính xác định hàng đợi là chỉ đọc
IsSynchronized Thuộc tính xác định hàng đợi được đồng bộ
SyncRoot Thuộc tính trả về đối tượng có thể được sử dụng để
đồng bộ truy cập Queue.
Clear() Xóa tất cả các thành phần trong hàng đợi
Clone() Tạo ra một bản sao
Contains() Xác định xem một thành phần có trong mảng.
CopyTo() Sao chép những thành phần của hàng đợi đến mảng
một chiều đã tồn tại
Dequeue() Xóa và trả về thành phần bắt đầu của hàng đợi.
Enqueue() Thêm một thành phần vào hàng đợi.
GetEnumerator() Trả về một enumerator cho hàng đợi.
Peek() Trả về phần tử đầu tiên của hàng đợi và không xóa nó.

Console.Write(“intQueue values:\t”);
PrintValues(intQueue);
// xóa thành phần khỏi hàng đợi
Console.WriteLine(“\nDequeue\t{0}”, intQueue.Dequeue());
// hiển thị hàng đợi
Console.Write(“intQueue values:\t”);
PrintValues(intQueue);
// Xem thành phần đầu tiên trong hàng đợi.
Console.WriteLine(“\nPeek \t{0}”, intQueue.Peek());
// hiển thị hàng đợi
Console.Write(“intQueue values:\t”);
PrintValues(intQueue);
}
public static void PrintValues(IEnumerable myCollection)
{
IEnumerator myEnumerator = myCollection.GetEnumerator();
while (myEnumerator.MoveNext())
Console.Write(“{0} ”, myEnumerator.Current);
Mảng, Chỉ Mục, và Tập Hợp
262


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

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