Nội dung
Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:
- Cấu trúc cơ bản của một chương trình C# console application
- BIẾN và KIỂU DỮ LIỆU trong C#
- TOÁN TỬ TRONG C#
- CÂU ĐIỀU KIỆN TRONG C#
- CẤU TRÚC CƠ BẢN CỦA VÒNG LẶP
- CẤU TRÚC CƠ BẢN CỦA HÀM TRONG C#
- MẢNG 1 CHIỀU TRONG C#
Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:
- Collections là gì?
- Một số loại Collection thông dụng.
Collections là gì?
Collections trong C# là gì?
Các lớp hỗ trợ lưu trữ, quản lý và thao tác với các đối tượng một cách có thứ tự.
Các lớp này nằm trong namespace System.Collections.
Một số đặc điểm của Collections
Là một mảng có kích thước động:
- Không cần khai báo kích thước khi khởi tạo.
- Có thể tăng giảm số lượng phần tử trong mảng một cách linh hoạt.
Có thể lưu trữ một tập hợp đối tượng thuộc nhiều kiểu khác nhau.
Hỗ trợ rất nhiều phương thức để thao tác với tập hợp như: tìm kiếm, sắp xếp, đảo ngược, . . .
Mỗi collections được tổ chức thành một lớp nên cần khởi tạo đối tượng trước khi sử dụng.
Khi nào sử dụng Collection?
Chúng ta đã từng tìm hiểu một kiểu dữ liệu dùng để quản lý danh sách đối tượng đó là kiểu mảng. Vậy Collections có gì hay hơn mảng? Khi nào dùng mảng và khi nào dùng Collections?
Đầu tiên là những điểm mạnh của Collections
- Bên trong Collections có nhiều lớp đa dạng hỗ trợ cho từng mục đích khác nhau. Nếu như mảng chỉ có thể truy xuất phần tử thông qua chỉ số thì các Collections có thế truy xuất thông qua chỉ số hoặc thông qua key.
- Đối với danh sách cần thao tác tìm kiếm nhiều thì Collections cũng có lớp hỗ trợ giúp việc tìm kiếm nhanh hơn nhiều so với mảng nguyên thuỷ (sẽ được trình bày trong bài HASHTABLE TRONG C#).
- Trong trường hợp danh sách cần thay đổi số lượng phần tử liên tục (thêm hoặc xoá phần tử) thì Collections cũng hỗ trợ sẵn (sẽ được trình bày trong bài ARRAYLIST TRONG C#).
- Ngoài ra trong namespace System.Collections còn hỗ trợ sẵn 2 cấu trúc dữ liệu kinh điển đó là STACK và QUEUE nên bạn chỉ cần lấy ra sử dụng mà không cần cài đặt lại.
Vậy khi nào sử dụng mảng khi nào sử dụng Collections?
Theo lời khuyên từ Microsoft thì:
- Mảng thường được dùng để làm việc với một số lượng cố định các đối tượng strongly-typed (Mình sẽ trình rõ hơn về khái niệm này trong series khác. Bạn có thể hiểu đơn giản, strongly-typed là kiểu dữ liệu không bị thay đổi một cách đột ngột, tường minh).
- Collections cung cấp một cách linh hoạt hơn để làm việc với danh sách. Ta có thể tăng giảm số lượng phần tử một cách tự động. Một số Collections còn hỗ trợ lưu trữ danh sách dưới dạng Key – Value (sẽ được trình bày trong bài HASHTABLE TRONG C#) giúp mình truy xuất, tìm kiếm một cách nhanh chóng.
Một số Collections thông dụng
Một số lớp Collections được sử dụng phổ biến:
LỚP |
MÔ TẢ |
ArrayList |
Lớp cho phép lưu trữ và quản lý các phần tử giống mảng. |
HashTable |
Lớp lưu trữ dữ liệu dưới dạng cặp Key – Value. |
SortedList |
Là sự kêt hợp của ArrayList và HashTable. Tức là dữ liệu sẽ lưu dưới dạng Key – Value. |
Stack |
Lớp cho phép lưu trữ và thao tác dữ liệu theo cấu trúc LIFO (Last In First Out). |
Queue |
Lớp cho phép lưu trữ và thao tác dữ liệu theo cấu trúc FIFO (First In First Out). |
BitArray |
Lớp cho phép lưu trữ và quản lý một danh sách các bit. |
Trong bài học này mình chỉ giới thiệu tổng quan về Collections và một số Collections thông dụng. Những bài học sau chúng ta sẽ đi vào chi tiết về cách sử dụng từng Collections cụ thể.
Kết luận
Nội dung bài này đã giới thiệu đến các bạn về Collections cũng như một số Collections thông dụng.
Bài sau chúng ta sẽ tìm hiểu về ARRAYLIST TRONG C#.