Bài 11

Collection(tập hợp)

 Ôn tập lại bài cũ

• Khái niệm Exception

• Phân loại Exception

• Exception classes

• Các thuộc tính của lớp Exception

• Bắt và xử lý ngoại lệ (Exception handling)

• Câu lệnh Throw

• Câu lệnh Finally

Collection

 Nội dung trình bày

• Collection(tập hợp) là gì?

• System.Collection namespace

• System.Collection.Generic namespace

• Lớp ArrayList

• Lớp HashTable

• Lớp SortedList

• Lớp Dictionary

• Lớp Stack

• Lớp Queue

Subject name / Session# / 3 of Totalpage

• Lớp LinkedList

Collection

 Collection(tập hợp) là gì?

• Giả sử cần phải viết chương trình nhập vào dãy số. Cấu trúc dữ liệu

để lưu trữ dãy số chúng ta nghĩ ngay đến là dùng mảng. Tuy nhiên

(cid:0) Kích thước của mảng không thể thay đổi lúc thực thi chương

mảng có một số nhược điểm:

(cid:0) Các phần tử lưu trong mảng phải có cùng một kiểu dữ liệu

(cid:0) Mảng không có phương thức nào để thao tác với các phần tử

trình

trong mảng

• Tập hợp là khái niệm để chỉ tập các phần tử. Ví dụ tập hợp các đối

tượng của một lớp hoặc tập các đối tượng của nhiều lớp, tập các số

nguyên, tập các chuỗi.

Collection

 So sánh mảng và tập hợp

Collection

 System.Collection namespace

(cid:0) Đây là namspace chứa các lớp để thao tác với tập các đối

tượng(tập hợp). Dưới đây là bảng liệt kê các lớp và interface có

trong namespace này

Collection

 System.Collection namespace

Collection

 System.Collection.Generic

• Namespace Sysmte.Collection.Generic giống như namespace

System.Collection. Tuy nhiên các lớp trong System.Collection.Generic là các

lớp generic.

Exception Handling

 Lớp ArrayList

• Là lớp lưu trữ tập các đối tượng theo kiểu mảng, tức là truy xuất

các đối tượng trong tập hợp theo chỉ số.

• Kích thước mặc định của ArrayList là 16 byte.Kích thước của

ArrayList có thể thay đổi lúc thực thi. Nếu các phần tử được lấp

đầy, kích thước của ArrayList sẽ tự động tăng gấp đôi.

• ArrayList có thể lưu các phần tử thuộc các kiểu dữ liệu khác nhau.

ArrayList cho phép lưu giá trị null cũng như giá trị trùng lặp.

Collection

 Các phương thức và thuộc tính thông dụng

 Ví dụ DEMO về ArrayList

Collection

Lớp Hashtable

• Cho phép tạo ra một tập hợp dưới dạng key và value.

• Key sẽ được dùng để sinh ra Hash code tương ứng. Và Hash code sẽ dùng để xác

định key và value tương ứng.

• Ví dụ DEMO

Collection

 Lớp SortedList

• SortedList là lớp kết hợp của Hashtable và ArrayList, có nghĩa là

các phần tử trong tập hợp bao gồm key và value, các phần tử được

truy xuất theo chỉ số.

• Sự khác nhau giữa Hastable và SortedList là các phần tử trong

SortedList được sắp xếp theo key của nó. Việc thực thi chương

trình sử dụng SortedList chậm hơn chương trình sử dụng

Hashtable do có quá trình sắp xếp các phần tử.

Collection

 Các phương thức và thuộc tính thông dụng của lớp SortedList

 Ví dụ DEMO

Collection

 Lớp Dictionary

• Là lớp tạo ra tập hợp các phần tử kiểu generic gồm có key và value.

Có nghĩa là nó chỉ cho phép lưu một tập các phần tử có cặp key và

value có cùng kiểu dữ liệu.

• Dictonary không có cho phép lưu trữ giá trị null.

Collection

 Cú pháp: Dictionary

 Ví dụ DEMO

Collection

 Lớp Stack

• Stack là một cấu trúc dữ liệu theo kiểu LIFO(Last In và First Out)

Ví dụ DEMO

Collection

 Lớp Queue

• Cấu trúc dữ liệu tổ chức theo kiểu FIFO

 Lớp LinkedList

• Cấu trúc dữ liệu liên kết đôi

Collection

 Tổng kết

• Khái niệm collection

• System.Collection namespace

• System.Collection.Generics namespace

• Lớp ArrayList

• Lớp Hastable

• Lớp SortedList

• Lớp Dictionary

• Lớp Stack

• Lớp Que và LinkedList