• BitArray• BitVector32 • BitVector32 • BitVector32 • StringCollection • StringDictionary • NameValueCollection
• BitArray
− Là tập hợp có thể thay đổi kích thước
• Phải khai báo kích thước ban đầu
• Không tự động thay đổi kích thước
− Hỗ trợ các thao tác cơ bản trên dữ liệu bit như
• And
• Or
• Not
• XorXor
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các Collection chuyên biệt hóa
• BitArray
− Khi khKhi khởởi ti tạạo: giá tro: giá trịị mmặặc c địđịnh các phnh các phầần tn tửử là falselà false
− Chức năng mạnh nhất của BitArray là thực hiện các phép toán trên bit với 2 đối tượng BitArray có cùng
p p g y g
• BitVector32
− Thích hThích hợợp cho vip cho việệc xc xửử lý các bit clý các bit củủa ma mộột st sốố llớớnn
• Dữ liệu dược lưu dưới dạng số nguyên 32 bit
• Mọọi xử lý trên BitVector32 sý ẽ thay y đổi giá trg ịị của số
nguyên chứa trong nó
• Lấy giá trị số nguyên thông qua thuộc tính Data
Khô thể th đổi kí h th ớ
− Không thể thay đổi kích thước
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các Collection chuyên biệt hóa
• BitVector32 - Bit Mask
− Cho phép tCho phép tạạo bit mask theo tho bit mask theo thứứ ttựự tutuầần tn tựự thông qua thông qua phương thức tĩnh CreateMask.
− Ví dụ: gán giá trg g ị cho 4 bit đầu tiên của 1 số nguyên g y 32 bit.
• BitVector32 - Bit Mask
− TTạạo tho thểể hihiệện BitVector32n BitVector32 BitVector32 v=new BitVector32(0);
− Tạo mask cho bit đầu tiên
BitVector32 v new BitVector32(0);
int fBit=BitVector32.CreateMask();
− Tạo bit mask thứ 2 với tham số là bit mask trước
int cBit=BitVector32.CreateMask(fBit);
trước
− Lặp lại bước trên cho tới khi tạo xong 4 bit mask
int tBit=BitVector32.CreateMask(cBit);
i f Bi Bi V 32 C M k( Bi ) int foBit=BitVector32.CreateMask(tBit);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các Collection chuyên biệt hóa
• BitVector32 - Bit Packing
− HHỗỗ trtrợợ ggộộp nhip nhiềều su sốố nhnhỏỏ thành 1 sthành 1 sốố llớớn:n:
• Thường được dùng để giảm bộ nhớ lưu trữ khi xử lý các số nhỏ (rất nhỏ). − Ví dụ : cần lưu 3 số nguyên • Số thứ nhất: max=10 ố Cần 3 số ê I t16 ? BitV t 32Dùng 1 • Số thứ hai: max=50 • Số thứ ba: max=500
• BitVector32 - Bit Packing Packing BitVector32.Section fs = BitVector32.CreateSection(10); BitVector32.Section ss = BitVector32 CreateSection(50 fs); − Tạo section lưu số nguyên có kích thước xác định BitVector32.CreateSection(50,fs); BitVector32.Section ts = BitVector32.CreateSection(500,ss); BitVector32 pb = new BitVector32(0);
thước xác định − Gán giá trị cho các section pb[fs] = 10; pb[ss] = 1; pb[ts] = 192; − In kết quả Console.WriteLine(pb[fs]); Console.WriteLine(pb[ss]); Console.WriteLine((pb[ts]p [ ]);); Console.WriteLine(pb.Data); Console.WriteLine(pb);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các Collection chuyên biệt hóa
• CollectionString
− Là mLà mộột tt tậập hp hợợp p độđộngng
− Chỉ lưu chuỗi ký tự
− Các chức năng tương tự như ArrayList
− Các chức năng tương tự như ArrayList
StringCollection coll=new StringCollection();
coll.Add(“First”); coll.Add(“Second”); coll.Add(“Third”);
String third=g coll[2][ ];; ?
• StringDictionary
− Là mLà mộột phiên bt phiên bảản tn từừ đđiiểển mn mạạnhnh
− Sử dụng tương tự như HashTable
• Key/valueKey/value đềđều có kiu có kiểểu Stringu String
StringDictionary dict=new StringDictionary(); dict[“First”]=“1st”;
dict[“Second”]=“2nd”; dict[“second”]=“second”;
string second=g dict[“Second”][ ]; // 2; nd
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các Collection chuyên biệt hóa
• NameValueCollection
− TTươương tng tựự StringDictionaryStringDictionary
• Key/ value đều có kiểu String
− ĐặĐặcc đđiiểểm:m:
• Cho phép có nhiều value cho 1 key
• Truy xuất value thông qua chỉ mục và key
− Thêm phần tử: phương thức Add
• NameValueCollection
NameValueCollection nv=new NameValueCollection();
nv.Add(“Key”,”Some Text”); nv.Add(“Key”,”More Text”);
foreach (string s in nv.( g GetValues(“Key”)){( y )){ Console.WriteLine(s);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các Collection chuyên biệt hóa
• NameValueCollection
NameValueCollection nv = new NameValueCollection();(); nv["First"]= "1st";
nv["First"]= "First";
nv.Add("Second", "2nd");
nv.Add("Second", "Second");
Console WriteLine("First length:"+nv GetValues("First") Length); Console.WriteLine( First length: +nv.GetValues( First ).Length);
• NameValueCollection
NameValueCollection nv = new NameValueCollection();();
nv.Add(“First", “1st"); nv.Add("Second", "2nd");
nv.Add("Second", "Second"); for (int i=0;i<nv.Count;i++){
Console WriteLine(nv[i]); Console.WriteLine(nv[i]); }
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Generic
• Khái niệm