Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT

4,065
-1

Published on

Tìm hiểu về Collection trong VB.Net:
Khái niệm Collection
Phân loại các Collection
Lớp Collection trong VB.Net
Lớp CollectionBase trong VB.Net

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,065
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
226
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT

  1. 1. Bài 3: COLLECTION TRONG VB.NET
  2. 2. Nhắc lại khái niệm lập trình hướng thủ tục (Procedural Programming) Tìm hiểu các khái niệm và ý nghĩa Lập trình hướng đối tượng (OOP) Lập trình hướng đối tượng trong VB.Net Nhắc lại bài cũ Slide 3 - Collection trong VB.Net 2
  3. 3. Tìm hiểu về Collection trong VB.Net: Khái niệm Collection Phân loại các Collection Lớp Collection trong VB.Net Lớp CollectionBase trong VB.Net Mục tiêu bài học hôm nay Slide 3 - Collection trong VB.Net 3
  4. 4. Collection (tập hợp): là một kiểu dữ liệu cho phép lưu một tập hợp các đối tượng dữ liệu, theo một cách tổ chức dữ liệu nhất định (ví dụ tổ chức theo dạng tập, cây, danh sách,…) Có thể phân loại thành: Tập hợp tuyến tính Tập hợp phi tuyến tính Khái niệm Slide 3 - Collection trong VB.Net 4
  5. 5. Các phần tử được sắp xếp theo vị trí Thứ tự truy cập: Truy cập trực tiếp Truy cập tuần tự Tập hợp tuyến tính Slide 3 - Collection trong VB.Net 5
  6. 6. Ví dụ: Mảng là một tập các phần tử có cùng kiểu dữ liệu và các phần tử được truy cập trực tiếp thông qua các chỉ số là các số nguyên Tập hợp truy cập trực tiếp Slide 3 - Collection trong VB.Net 6 2 3 5 7 11 13 17 0 1 2 3 4 5 6 Thứ tự truy cập Vị trí:
  7. 7. Tập hợp được thiết kế chỉ cho phép duyệt từ đầu tới cuối tập hợp hoặc từ cuối tập hợp ngược lại. Ví dụ: Ngăn xếp (Stack) Hàng đợi (Queue) Danh sách liên kết (Linked list) Tập hợp truy cập tuần tự Slide 3 - Collection trong VB.Net 7
  8. 8. Ví dụ: danh sách liên kết là một tập các phần tử có cùng kiểu dữ liệu và việc truy cập các phần tử được tiến hành tuần tự từ đầu danh sách đến cuối danh sách Tập hợp truy cập tuần tự Slide 3 - Collection trong VB.Net 8 HHình minh họa một danh sách liên kết. Việc duyệt danh sách này được tiến hành từ phần tử đầu 18, lần lượt đến 24, 39, …
  9. 9. Các phần tử không được sắp xếp theo vị trí Thứ tự truy cập: Truy cập theo phân cấp. Ví dụ: Cây (Tree) Truy cập theo phân nhóm. Ví dụ: Đồ thị… Tập hợp phi tuyến tính Slide 3 - Collection trong VB.Net 9
  10. 10. Ví dụ: Cây (Tree) là một cấu trúc phi tuyến tính Truy nhập các phần tử theo cấp từ nút gốc đến nút lá -> cây biểu diễn mảng {13, 12, 10, 7, 11, 8, 9} Truy cập theo phân cấp Slide 3 - Collection trong VB.Net 10 HHình minh họa một cấu trúc dữ liệu dạng cây
  11. 11. Tập phi tuyến tính với các phần tử không được sắp xếp thứ tự được gọi là nhóm Tập hợp nhóm được phân chia thành ba nhóm chính là: Set, đồ thị (graph) và mạng lưới (network) Truy cập theo phân nhóm Slide 3 - Collection trong VB.Net 11
  12. 12. Ví dụ: Đồ thị mô tả mạng lưới các thành phố Truy cập theo phân nhóm Slide 3 - Collection trong VB.Net 12 HHình minh họa một đồ thị mô tả mạng lưới các thành phố
  13. 13. Có hai lớp cài đặt cấu trúc dữ liệu collection trong VB.Net Sử dụng lớp Collection Sử dụng lớp CollectionBase Cài đặt tập hợp trong VB.Net Slide 3 - Collection trong VB.Net 13
  14. 14. Tính chất: Các phần tử không giới hạn vào tập hợp Các phần tử có kiểu bất kì được thêm vào collection đều được lưu với kiểu Object. Sử dụng lớp Collection Slide 3 - Collection trong VB.Net 14
  15. 15. Sử dụng lớp Collection Slide 3 - Collection trong VB.Net 15 String Integer Real Object Object Object Hình minh họa các phần tử có kiểu bất kì đều được lưu trong Collection với kiểu là Object
  16. 16. Cách khai báo: Dim names As New Collection Trong đó: “names” là tên của collection Sử dụng lớp Collection Slide 3 - Collection trong VB.Net 16
  17. 17. Lớp Collection cung cấp một số thuộc tính chính: Lớp Collection cung cấp một số phương thức chính: Sử dụng lớp Collection Slide 3 - Collection trong VB.Net 17 Có thể xem chi tiết API của lớp trên MSDN http://msdn.microsoft.com/en-us/library/system.collections.aspx Thuộc tính (Property) Giải thích Count cho biết số phần tử có trong collection Item trả về một phần tử của collection theo chỉ số hoặc khóa Add thêm phần tử vào collection Remove xóa một phần tử khỏi collection Clear xóa tất cả các phần tử của collection
  18. 18. Ví dụ: dùng phương thức Add để thêm dữ liệu vào Collection Phương thức Add Slide 3 - Collection trong VB.Net 18 Dim names As New Collection ' Thêm tên các phần tử vào Collection names.Add("David Durr") names.Add("Raymond Williams") names.Add("Bernica Tackett") names.Add("Beata Lovelace")
  19. 19. Ví dụ: Thêm tên các phần tử vào tập hợp cùng với khóa (key) đi kèm. Lưu ý: khóa của mỗi phần tử phải là biểu thức String duy nhất Phương thức Add Slide 3 - Collection trong VB.Net 19 Dim names As New Collection ' Thêm tên các phần tử vào Collection names.Add("David Durr", “300") names.Add("Raymond Williams“, “301") names.Add("Bernica Tackett“, “302") names.Add("Beata Lovelace“, “303") 'Hiển thị số phần tử có trong Collection Console.WriteLine(names.Count)
  20. 20. Ví dụ: thêm các phần tử vào tập hợp cùng với khóa và chỉ định vị trí thêm vào trong tập hợp. Phương thức Add Slide 3 - Collection trong VB.Net 20 Dim names As New Collection names.Add("David Durr", “300") names.Add("Raymond Williams“, “301") 'Chỉ định vị trí thêm vào trước phần tử đầu tiên names.Add("Bernica Tackett“, “302“, 1) 'Chỉ định vị trí thêm vào trước phần tử thứ 3 names.Add("Beata Lovelace“, “303“, 3)
  21. 21. Ví dụ: Hiển thị ra màn hình thông tin mỗi phần tử trong collection thông qua thuộc tính Item truyền theo chỉ số: Thuộc tính Item Slide 3 - Collection trong VB.Net 21 ' Khai báo biến index Dim index As Integer 'Hiển thị ra màn hình For index = 1 To names.Count Console.WriteLine(names.Item(index)) Next
  22. 22. Ví dụ: Hiển thị ra màn hình thông tin mỗi phần tử trong tập hợp thông qua thuộc tính Item truyền theo khóa (với trường hợp các phần tử có chỉ số bắt đầu từ 300): Thuộc tính Item Slide 3 - Collection trong VB.Net 22 Dim index As Integer 'khai báo biến index Dim key As Integer = 300 'khai báo biến key Dim name As String 'khai báo biến lặp 'Hiển thị ra màn hình tên mỗi phần tử trong Collection For Each name In names key = CStr(index) Console.WriteLine(names.Item(key)) index += 1 Next
  23. 23. Khi lấy một phần tử ra khỏi Collection, phần tử sẽ có kiểu đối tượng. Để chuyển kiểu tường minh, cần dùng hàm chuyển CType Chuyển đổi kiểu đối tượng lấy từ Collection Slide 3 - Collection trong VB.Net 23 Option Strict On Dim myString As String = "This is my String" Dim aString As String Dim myCollection As New Collection() myCollection.Add(myString) aString = CType(myCollection.Item(1), String)
  24. 24. Nhận xét: Các phần tử có kiểu bất kì được thêm vào collection đều được lưu với kiểu Object Do đó các phương thức định nghĩa cho các lớp String, Interger, Decimal … không được gọi trực tiếp, phải sử dụng hàm CType để chuyển các Object về kiểu dữ liệu ban đầu (String, Integer, Decimal…) Có thể thêm nhiều đối tượng với kiểu khác nhau vào cùng một collection  Sử dụng lớp CollectionBase để cài đặt tập hợp định kiểu rõ ràng cho các phần tử. Sử dụng lớp Collection Slide 3 - Collection trong VB.Net 24
  25. 25. Demo và giải thích cài đặt lớp collection riêng trên VB.NET (trong SGK) Demo về CollectionBase Slide 3 - Collection trong VB.Net 25
  26. 26. Là lớp dạng abstract, cung cấp khung để xây dựng các lớp mới hỗ trợ kiểu tổ chức collection Bao gồm các phương thức abstract chính sau: Lớp CollectionBase Slide 3 - Collection trong VB.Net 26 Phương thức Giải thích Add Thêm một đối tượng vào cuối collection. Insert Chèn thêm một phần tử vào collection tại vị trí chỉ định. Remove Xóa bỏ phần tử đầu tiên tìm thấy trong collection giống đối tượng được chỉ định. Contains Xác định vị trí mà collection chứa phần tử được chỉ định. IndexOf Tìm kiếm phần tử được chỉ định và trả về chỉ số (tính từ 0) của phần tử đầu tiên trong collection thỏa mãn điều kiện. CopyTo Sao chép toàn bộ collection tới một mảng một chiều phù hợp, bắt đầu tại vị trí được chỉ định của mảng đích
  27. 27. Bao gồm các phương thức public chính sau: Clear: Xóa bỏ tất cả các đối tượng từ collection RemoveAt: Xóa một phần tử tại vị trí chỉ định trong collection Equals: Xác minh xem đối tượng đường truyền vào có bằng với đối tượng hiện tại không. ToString: Trả về một chuỗi thể hiện đối tượng hiện hành. GetEnumerator: Trả về một điều khiển liệt kê được sử dụng để lặp và duyệt toàn bộ collection. Sử dụng lớp CollectionBase Slide 3 - Collection trong VB.Net 27
  28. 28. Demo và giải thích cài đặt lớp StudentColl kế thừa từ lớp CollectionBase (trong SGK) Demo về CollectionBase Slide 3 - Collection trong VB.Net 28
  29. 29. Ngoài lớp CollectionBase, trong namespace System.Collection còn có nhiều lớp kiểu collection, ví dụ một số lớp điển hình: Namespace System.Collection Slide 3 - Collection trong VB.Net 29 Tên lớp Ý nghĩa ArrayList Biểu diễn tập các đối tượng dưới dạng mảng Hashtable Biểu diễn tập phần tử theo cặp khóa/giá trị Queue Biểu diễn cấu trúc queue, vào-trước-ra-trước SortedList Biểu diễn tập phần tử theo cặp khóa/giá trị, được sắp xếp theo khóa, truy cập theo khóa hoặc chỉ số ReadOnlyCollectionBase Lớp abstract để cài đặt collection chỉ hỗ trợ đọc Stack Biểu diễn cấu trúc stack, vào-sau-ra-trước Chi tiết xem thêm tại: http://msdn.microsoft.com/en-us/library/system.collections%28v=VS.110%29.aspx
  30. 30. Collection là một kiểu dữ liệu được cấu trúc để một nhóm không giới hạn số lượng và kiểu phần tử Hai loại collection: Tập hợp tuyến tính: các phần tử được sắp xếp theo vị trí. Tập hợp phi tuyến tính: các phần tử không được sắp xếp theo vị trí. Phần tử trong collection có kiểu là Object Tổng kết Slide 3 - Collection trong VB.Net 30
  31. 31. Hai cách cài đặt collection trong VB.Net: Sử dụng ngay lớp Collection để tạo đối tượng collection Tạo lớp mới kế thừa từ lớp trừu tượng CollectionBase. kiểu của các phần tử do người dùng chỉ định. Tổng kết Slide 3 - Collection trong VB.Net 31
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×