Thứ Hai, 18 tháng 3, 2013

ArrayList trong VB.NET và C#











ArrayList là một phiên bản thông minh hơn của mảng. Thuộc không gian tên System.Collection.ArrayList, lớp ArrayList có những đặc điểm của Collection (tập hợp) hơn là mảng như :
- Kích thước mảng cố định theo khai báo còn ArrayList có thể tự động cơ sở dữ liệu giản theo yêu cầu.

- Nếu mảng cần định kích thước, gán trị thì ArrayList cung cấp các phương thức cho phép thêm, chèn, xóa một phần tử trong tập hợp.

- Các phần tử của mảng phải cùng một kiểu dữ liệu, còn các phần tử của ArrayList có kiểu chung làObject, nghĩa là có thể có các kiểu khác.

Cách truy xuất đến một phần tử của ArrayList cũng như cách truy xuất phần tử của mảng.

Các thuộc tính của ArrayList



Các phương thức của ArrayList



ArrayList Trong C#


Array (mảng) có lẽ là 1 gia vị quá đỗi quen thuộc đối với chúng ta, từ 1 anh sinh viên năm nhất tập tễnh bước vào thế giới lập trình với ngôn ngữ Pascal, cho đến những bạn đang theo đuổi nghiệp coding như chúng ta. Ứng dụng của mảng trong các bài tập ở các ngôn ngữ C/C++ là rất lớn. Nhưng…có 1 điều khó khăn mà chúng ta gặp phải khi sử dụng chúng là sự hạn chế về kích thước cố định của mảng. Làm sao để giải quyết vấn đề này nhỉ? Có lẽ các bạn cũng đã có cách giải quyết cho riêng mình, riêng tôi, với việc C# cho ra đời “baby” ArrayList, tôi có vỗ ngực nói với bạn bè “he he,mình đã giải quyết được vấn đề kích thước của mảng rồi”.ArrayList ra đời đã giải quyết được khuyết điểm của mảng trong các ngôn ngữ đi trước nó. Nào, bây giờ chúng ta cùng nhau tìm hiểu “em bé” ArrayList có mặt mũi vuông tròn như thế nào nhé. LET’S GO!

Trong C#, muốn thao tác với ArrayList, không có cách nào khác hơn là bạn phải dùng đến class ArrayList được xây dựng sẵn. Lớp ArrayList này cung cấp cho bạn những phương thức và thuộc tính cơ bản sau:

PUBLIC PROPERTIES – CÔNG DỤNG

Capacity : trả về hoặc cho thiết đặt số phần tử mà ArrayList có thể chứa.
Count : cho biết số phần tử hiện có trong ArrayList
IsFixedSize: trả về một trị bool cho biết liệu ArrayList mang kích thước cố định hay không
IsReadOnly: trả về 1 trị bool cho biết liệu xem ArrayList thuộc loại ReadOnly hay không
Item: trả về hoặc thiết đặt phần tử mảng về chỉ mục được chỉ định. Trên C#, thuộc tính này là indexer (bộ rảo chỉ mục) đối với class ArrayList

PUBLIC METHODS – CÔNG DỤNG

Add: thêm 1 đối tượng vào cuối ArrayList
AddRange: thêm các phần tử của một Icolletion vào cuối ArrayList
BinarySearch: sử dụng giải thuật binary search để xác định vị trí của một phần tử hoặc một phần trên ArrayList đã được sắp xếp
Clear: xóa sạch ArrayList
Clone: tạo 1 bản sao của ArrayList
Contains: xác định 1 phần tử nào đó có nằm trong ArrayList hay không
CopyTo: Sao chép ArrayList hoặc 1 phần tử nào đó sang mảng 1 chiều
IndexOf: trả về zero-based index của sự xuất hiện đầu tiên của 1 trị trên ArrayList hoặc trên 1 phần mảng
Insert: chèn thêm 1 phần tử vào ArrayList tại chỉ mục được chỉ định
InsertRange: chèn các phần tử của 1 collection vào ArrayList tại chỉ mục được chỉ định
LastIndexOf: trả về zero-based index của sự xuất hiện cuối cùng của 1 trị trên ArrayList hoặc trên 1 phần mảng
Remove: gỡ bỏ sự xuất hiện đầu tiên của một specific object ra khỏi ArrayList
RemoveAt: gỡ bỏ những phần tử tại chỉ mục được chỉ định của ArrayList
RemoveRange: gỡ bỏ 1 khoảng phần tử từ ArrayList
Reverse: đảo ngược thứ tự của các phần tử trên ArrayList.
SetRange: sao chép các phần tử của một collection chồng lên 1 phần phần tử trên ArrayList
Sort: sắp xếp các phần tử trên ArrayList hoặc trên 1 phần mảng
ToArray: sao chép các phần tử của ArrayList về 1 bản dãy
TrimToSize: thiết đặt khả năng về số phần tử hiện hành trên ArrayList

Lưu ý: khi bạn tạo 1 ArrayList, bạn không thể xác định sẽ có bao nhiêu đối tượng trong mảng. Bạn thêm phần tử vào ArrayList bằng cách dùng hàm Add() và ô liệt kê sẽ tự mình lo việc “giữ sổ sách” nội bộ đúng tình trạng.
Bạn cũng nên lưu ý 1 điều là sức chứa ban đầu mặc định của ArrayList là 16, do đó khi bạn thêm phần tử thứ 17 thì kích thước mặc định này sẽ tăng gấp đôi lên thành 32.

Sau đây là 1 thí dụ đơn giản về ArrayList được lấy từ MSDN:

Code:

using System;
using System.Collections;
public class SamplesArrayList
{

public static void Main()
{

// tạo 1 thể hiện của ArrayList
ArrayList myAL = new ArrayList();
myAL.Add("Hello");
myAL.Add("World");
myAL.Add("!");

// Hiển thị thuộc tính và giá trị trong ArrayList
Console.WriteLine( "myAL" );
Console.WriteLine( " Count: {0}", myAL.Count );
Console.WriteLine( " Capacity: {0}", myAL.Capacity );
Console.Write( " Values:" );
PrintValues( myAL );
}

public static void PrintValues( IEnumerable myList )
{
foreach ( Object obj in myList )
Console.Write( " {0}", obj );
Console.WriteLine();
}

}

/*
This code produces the following output.

myAL
Count: 3
Capacity: 16
Values: Hello World !

*/

0 nhận xét:

Đăng nhận xét