Danh sách sắp xếp (SortedList)

Một phần của tài liệu bài giảng lập trình hướng đối tượng c (Trang 76)

Danh sách sắp xếp (SortedList) cũng lưu trữ danh sách các phần tử là các cặp gồm (<khóa>, <giá trị>), nhưng các phần tử trong danh sách được sắp xếp theo thứ tự nhất định (ngầm định là tăng dần) về khóa. Các phần tử có thể được truy cập hoặc là thông qua khóa hoặc là thông qua chỉ số tương ứng của phần tử đó

SortedList là sự kết hợp của hai lớp Hashtable và ArrayList. Điểm khác biệt giữa SortedList và Hashtable là các phần tử trong SortedList được sắp xếp theo thứ tự nhất định của khóa (key). Các phần tử có thể được truy cập theo khóa hoặc theo chỉ số của phần tử trong danh sách. Do phải sắp xếp các phần tử nên chương trình sử dụng SortedList sẽ chậm hơn sử dụng Hashtable.

4.1. Khởi tạo danh sách sắp xếp

Giống bảng băm, danh sách sắp xếp cũng có nhiều phương thức khởi tạo khác nhau, sau đây là một số phương thức khởi tạo hay dùng

Hàm tạo Mô tả

SortedList() Khởi tạo đối tượng danh sách sắp xếp với không gian ngầm định SortedList(IDictionary) Nhận tham số vào kiểu IDictionary và khởi tạo đối tượng danh sách sắp xếp bằng cách sao chép tất cả phần tử thuộc IDictionary.

SortedList(int) Khởi tạo đối tượng danh sách sắp xếp với không gian là số phần tử bằng với tham số truyền vào

Bảng (VI.9) Các phƣơng thức khởi tạo danh sách sắp xếp 4.2. Thuộc tính và phƣơng thức

Một số thuộc tính hay dùng của danh sách sắp xếp Tên thuộc tính Mô tả

Capacity Chỉ định số phần tử mà danh sách sắp xếp có thể lưu trữ Count Số phần tử hiện tại được lưu trong danh sách

Item Cập nhật giá trị của phần tử có khóa cho trước

Keys Trả ra một ICollection lưu trữ các khóa của bảng băm Values Trả ra một ICollection lưu trữ các giá trị của bảng băm

Bảng (VI.10) Các thuộc tính của danh sách sắp xếp

Một số phương thức hay dùng của danh sách sắp xếp Tên phương thức Mô tả

Remove Xóa một phần tử có khóa xác định

GetKey Lấy khóa của phần tử có chỉ số được chỉ định GetByIndex Lấy giá trị của phần tử có chỉ số được chỉ định IndexOfKey Trả về chỉ số của phần tử có khóa được chỉ định

IndexOfValue Trả về chỉ số của phần tử đầu tiên có giá trị được chỉ định CopyTo Sao chép các phần tử trong bảng băm sang mảng

ContainsKey Kiểm tra trong danh sách có khóa được chỉ định hay không ContainsValue Kiểm tra trong danh sách có giá trị được chỉ định hay không ToString Trả về chuỗi giá trị cho phần tử được chỉ định

TrimToSize Chỉnh lại không gian của danh sách cho bằng số phần tử hiện tại của danh sách

Bảng (VI.11) Các phƣơng thức của danh sách sắp xếp Ví dụ (VI.4) Sử dụng danh sách sắp xếp (SortedList)

Bước 1: Thêm một dự án console với tên „SortedListDemo‟ vào solution Session_VI

Bước 2: Thiết lập „SortedListDemo‟ là dự án mặc định bằng cách click chuột phải vào tên dự án và chọn Set As Statup Project

Bước 3: Sửa lớp Program.cs theo mã lệnh bên dưới. Lưu ý trước khi thêm mã lệnh bên dưới vào lớp Program phải khai báo sử dụng không gian tên System.Collection bằng từ khóa using using System.Collections; namespace SortedListDemo { class Program {

static void Main(string[] args) {

// Creates and initializes a new SortedList.

SortedList mySL = new SortedList();

mySL.Add("Third", "!"); mySL.Add("Second", "World"); mySL.Add("First", "Hello");

// Displays the properties and values of the SortedList. Console.WriteLine("mySL");

Console.WriteLine(" Count: {0}", mySL.Count);

Console.WriteLine(" Capacity: {0}", mySL.Capacity);

Console.WriteLine(" Keys and Values:");

// Access element by index

{

Console.WriteLine("\t{0}:\t{1}", mySL.GetKey(i),

mySL.GetByIndex(i)); } Console.ReadLine(); } } }

Bước 4: Dịch và chạy chương trình

Hình (VI.5) Màn hình hiển thị Ví dụ (VI.4)

Trong Ví dụ (VI.4) trình bày cách sử dụng lớp SortedList. Dùng phương thức Add() để thêm các phần tử vào danh sách các cặp (<khóa>,<giá trị>). Các phần tử sau khi được thêm vào danh sách sẽ được tự động sắp xếp theo khóa. Các phần tử này có thể được truy cập theo chỉ số bằng các phương thức GetKey(), GetByIndex().

Một phần của tài liệu bài giảng lập trình hướng đối tượng c (Trang 76)