Thông tin tài liệu
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
Ngày đăng: 07/08/2014, 22:18
Xem thêm: Bài 8 Collection và Generics Nền tảng lập trình C Trung tâm tin học Đại học KHTN, Bài 8 Collection và Generics Nền tảng lập trình C Trung tâm tin học Đại học KHTN