Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
515,24 KB
Nội dung
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 1 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Bài 8: Collection và Generics • Collections • Th tá ớiáđốit dháhtầ t • Th ao tá c v ới c á c đối t ượng d an h s á c h t u ầ n t ự • Dictionaries • Các collection chuyên biệt hóa (Specialized Collections) • Generic Generic • Generic Collections 2 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Collections (tập hợp) là các lớp hỗ trợ thu thập và quản lý các đối tượng − Một cách có thứ tự − Hỗ trợ lưu, tìm kiếm và duyệt các đối tượng trong tập hợp • Namespace System.Collections của .NET Framework cung cấp nhiều kiểu tập hợp khác nhau − Cần dùng collection nào trong từng trường hợpcụ thể ? Cần dùng collection nào trong từng trường hợp cụ thể ? 3 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Các kiểu collection thông dụng − ArrayList − SortedList − Queue − Stack − Hashtable Hashtable − StringCollection − StringDictionary 4 StringDictionary − ListDictionary TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Thêm và xóa phần tử − LớpArrayListlàlớpcơ bảnnhấtnằm ẩn bên trong tất Lớp ArrayList là lớp cơ bản nhất , nằm ẩn bên trong tất cả các lớp còn lại. − Thêm và xóa p hần tử khỏi Arra y List rất đơn g iản. p y g − ArrayList cung cấp 2 phương thức để thêm phần tử: • Add • AddRange 5 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Thêm phần tử : − Thêm phầntử dùng phương thứcAdd Thêm phần tử dùng phương thức Add string s= “ Hello ” ; ArrayList coll=new ArrayList(); X coll coll string s= Hello ; coll.Add(s); coll.Add(“Hi”); ll Add (0) “Hello” “Hi” 50 0 1 2 Nhiềukiểudữ liệukhác co ll . Add ( 5 0) ; coll.Add(new object()); 50 object 2 3 6 Nhiều kiểu dữ liệu khác nhau có thể được lưu trong ArrayList TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Thêm phần tử − ArrayList hỗ trợ phương thức : AddRange để thêm 1 ArrayList hỗ trợ phương thức : AddRange để thêm 1 dãy các phần tử • Từ một array/ collection khác. Add và AddRange thêm p hần tử vào ArrayList coll=new ArrayList(); string[] anArray=new string[]{“more”,”or”,”less”}; p cuối dãy. coll.AddRange(anArray); object[] anotherArray=new object[]{new object(),new Arra y List ()}; 7 y ()}; coll.AddRange(anArray); TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Thêm phần tử − ArrayList cung cấpphương thức Insert và InsertRange ArrayList cung cấp phương thức Insert và InsertRange hỗ trợ thêm phần tử vào 1 vị trí xác định ArrayList coll = new ArrayList(); coll.Insert(1, "Hey all"); string[] moreString = new string[] {"good night","see you"}; ll ItR ( 3 St i ) Kếtquả co ll . I nser tR ange ( 3 , more St r i ng ) ; for (int i = 0; i < coll.Count; i++){ Console.WriteLine( " Item "+ i +" : "+ coll[i]); Kết quả là gì ? 8 Console.WriteLine( Item i : coll[i]); } TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Thêm phần tử − ArrayList hỗ trợ gán giá trị cho đốitượng trong ArrayList hỗ trợ gán giá trị cho đối tượng trong collection thông qua index của đối tượng coll[3]=“du lieu”; • Chỉ gán giá trị/ ghi đè giá trị cũ • Khôn g thêm mới p hần t ử g p 9 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Xóa phần tử − ArrayList hỗ trợ các phương thức xóa phầntử khỏi ArrayList hỗ trợ các phương thức xóa phần tử khỏi collection • Remove • RemoveAt • RemoveRange 10 [...]... IComparer thay cho đối tượng m c định coll.Sort(new CaseInsentitiveComparer()); ( p ()); • C thể tự tạo Comparer nếu c nhu c u 15 TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Danh sách tuần tự • Danh sách tuần tự − − − Là một collection Chỉ cho phép truy xuất tuần tự từng phần tử Mỗi lần chỉ truy xuất 1 phần tử 16 TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Danh sách tuần tự... (object item in coll){ Console.WriteLine(item); Console WriteLine(item); } 14 TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Collections • Sắp xếp phần tử − ArrayList hỗ trợ phương th c Sort để sắp xếp c c phần tử trong collection coll.Sort(); • • • Phương th c Sort dùng lớp Comparer th c hiện so sánh Comparer th c thi interface IComparer Phương th c Sort cho phép chỉ định đối tượng IComparer... khiển c ch th c sắp xếp c a danh sách sách SortedList s=new SortedList(new DescendingComparer()); … 33 TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Specialized Dictionaries • Khi c c từ điển chuẩn (standard dictionary) giới hạn về ch c năng/ thể hiện, NET hỗ trợ 3 loại từ điển chuyên biệt h ê biệt: − − − ListDictionary HybirdDictionary H bi dDi i OrderdDictionary 34 TRƯỜNG ĐẠI H C KHOA H C. .. TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Danh sách tuần tự • Tìm phần tử − − − Duyệt Stack Dùng Pop lấy ra và so sánh phần tử không c n trong Stack Tìm phần tử mà không lấy nó ra khỏi Stack: dùng phương th c Peek if (s.Peek() is String){ Console.WriteLine(s.Pop()); } 23 TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Dictionaries • Tập hợp lưu c c phần tử c thứ tự theo từng c p... th c hỗ trợ thêm/ xóa phần tử ỗ ầ − − − Clear IndexOf Contains string myString=“My String”; if (coll.Contains(myString)){ int index=coll.IndexOf(myString); index=coll IndexOf(myString); coll.RemoveAt(index); } else coll.Clear(); 12 TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Collections • Duyệt c c phần tử − ArrayList hỗ trợ nhiều c ch duyệt c c phần tử trong collection • • • Dùng chỉ... chỉ m c phần tử (index) Dùng interface IEnumerable và Enumerator Dùng c u tr c foreach 13 TRƯỜNG ĐẠI H C KHOA H C TỰ NHIÊN TP.HCM TRUNG TÂM TIN H C Collections • Duyệt á hầ D ệt c c phần tử Chỉ m c for (int i=0;i . TÂM TIN HỌC Bài 8: Collection và Generics • Collections • Th tá ớiáđốit dháhtầ t • Th ao tá c v ới c á c đối t ượng d an h s á c h t u ầ n t ự • Dictionaries • Các collection chuyên. collection chuyên biệt hóa (Specialized Collections) • Generic Generic • Generic Collections 2 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Collections • Collections (tập hợp) là các lớp. tập hợp • Namespace System.Collections của .NET Framework cung cấp nhiều kiểu tập hợp khác nhau − Cần dùng collection nào trong từng trường hợpcụ thể ? Cần dùng collection nào trong