1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình phân tích cấu tạo bo mạch mảng một chiều các giá trị bên trong dấu ngoặc p8 pdf

5 396 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 901,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

// phương thức tĩnh để nhận đối tượng Comparerpublic static EmployeeComparer GetComparer { return new Employee.EmployeeComparer; } public int CompareToObject rhs { Employee r = Employee

Trang 1

// 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, Yrs };

// yêu cầu những đối tượng Employee tự so sánh với nhau

public int Compare( object lhs, object rhs)

{

Employee l = (Employee) lhs;

Employee r = (Employee) rhs;

return l.CompareTo(r, WhichComparision);

Trang 2

public Employee.EmployeeComparer.ComparisionType WhichComparision {

get { return whichComparision;

} set { whichComparision = value;

} }

private Employee.EmployeeComparer.ComparisionType whichComparision; }

private int empID;

private int yearsOfSvc = 1;

}

public class Teser

{

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();

Employee.EmployeeComparer.ComparisionType.EmpID;

Trang 3

// 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; 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”);

}

}

}

- Kết quả:

ID: 100 Years of Svc: 16

ID: 102 Years of Svc: 8

ID: 107 Years of Svc: 17

ID: 105 Years of Svc: 0

ID: 101 Years of Svc: 3

ID: 100 Years of Svc: 16

ID: 101 Years of Svc: 3

ID: 102 Years of Svc: 8

ID: 105 Years of Svc: 0

ID: 107 Years of Svc: 17

ID: 105 Years of Svc: 0

ID: 101 Years of Svc: 3

ID: 102 Years of Svc: 8

ID: 100 Years of Svc: 16

ID: 107 Years of Svc: 17

Trang 4

-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

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ó.

ToArray() Sao chép những thành phần qua một mảng mới

Bảng 9.4: Những phương thức và thuộc tính của Queue.

Chúng ta có thể thêm những thành phần vào trong hàng đợi với phương thức Enqueue và sau

đó lấy chúng ra khỏi hàng đợi với Dequeue hay bằng sử dụng enumerator Ví dụ 9.15 minh họa việc sử dụng hàng đợi.

Ví dụ 9.15: Làm việc với hàng đợi.

Trang 5

-namespace Programming_CSharp

{

using System;

using System.Collections;

public class Tester

{

public static void Main()

{

Queue intQueue = new Queue();

// đưa vào trong mảng

for(int i=0; i <5; i++)

{

intQueue.Enqueue(i*5);

}

// hiện thị hàng đợi

Console.Write(“intQueue values:\t”);

PrintValues( intQueue);

// xóa thành phần ra 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);

// 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);

Ngày đăng: 22/07/2014, 21:21

HÌNH ẢNH LIÊN QUAN

Bảng 9.4: Những phương thức và thuộc tính của Queue. - Giáo trình phân tích cấu tạo bo mạch mảng một chiều các giá trị bên trong dấu ngoặc p8 pdf
Bảng 9.4 Những phương thức và thuộc tính của Queue (Trang 4)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm