Mảng, Chỉ Mục, Tập Hợp phần 6
Số trang: 19
Loại file: pdf
Dung lượng: 188.24 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Khi tạo đối tượng ArrayList, không cần thiết phải định nghĩa số đối tượng mà nó sẽ chứa. Chúng ta thêm vào ArrayList bằng cách dùng phương thức Add(), và danh sách sẽ quan lý những đối tượng bên trong mà nó lưu giữ
Nội dung trích xuất từ tài liệu:
Mảng, Chỉ Mục, Tập Hợp phần 6Khi tạo đối tượng ArrayList, không cần thiết phải định nghĩa số đối tượng mà nósẽ chứa. Chúng ta thêm vào ArrayList bằng cách dùng phương thức Add(), và danhsách sẽ quan lý những đối tượng bên trong mà nó lưu giữ. Ví dụ 9.12 sau minh họa sửdụng ArrayList. Ví dụ 9.12: Sử dụng ArrayList.-----------------------------------------------------------------------------namespace Programming_CSharp{ using System; using System.Collections; // một lớp đơn giản để lưu trữ trong mảng public class Employee { public Employee(int empID) { this.empID = empID; } public override string ToString() { return empID.ToString(); } public int EmpID { get { return empID; } set { empID = value; } } private int empID;}public class Tester{ static void Main() { ArrayList empArray = new ArrayList(); ArrayList intArray = new ArrayList(); // đưa vào mảng for( int i = 0; i < 5; i++) { empArray.Add( new Employee(i+100)); intArray.Add( i*5 ); } // in tất cả nội dung for(int i = 0; i < intArray.Count; i++) { Console.Write(“{0} ”,intArray[i].ToString()); } Console.WriteLine(“ ”); // in tất cả nội dung của mảng for(int i = 0; i < empArray.Count; i++) { Console.Write(“{0} ”,empArray[i].ToString()); } Console.WriteLine(“ ”); } Console.WriteLine(“empArray.Count: {0}”, empArray.Count); } Console.WriteLine(“empArray.Capacity: {0}”, empArray.Capacity); }----------------------------------------------------------------------------- Kết quả:0 5 10 15 20100 101 102 103 104empArray.Count: 5empArray.Capacity: 16-----------------------------------------------------------------------------Với lớp Array phải định nghĩa số đối tượng mà mảng sẽ lưu giữ. Nếu cố thêm cácthành phần vào trong mảng vượt quá kích thước mảng thì lớp mảng sẽ phátsinh ra ngoại lệ. Với ArrayList thì không cần phải khai báo số đối tượng mà nólưu giữ. ArrayList có một thuộc tính là Capacity, đưa ra số thành phần mà ArrayListcó thể lưu trữ: public int Capacity {virtual get; virtual set;}Mặc định giá trị của Capacity là 16, nếu khi thêm thành phần thứ 17 vào thì Capacity tựđộng nhân đôi lên là 32. Nếu chúng ta thay đổi vòng lặp như sau: for( int i = 0; i < 17; i++)thì kết quả giống như sau: 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 empArray.Capacity: 32Chúng ta có thể làm bằng tay để thay đổi giá trị của Capacity bằng hay lớn hơn giá trịCount. Nếu thiết lập giá trị của Capacity nhỏ hơn giá trị của Count, thì chương trìnhsẽ phát sinh ra ngoại lệ có kiểu như sau ArgumentOutOfRangeException.Thực thi IComparable Giống như tất cả những tập hợp, ArrayList cũng thực thi phương thức Sort() đểcho phép chúng ta thực hiện việc sắp xếp bất cứ đối tượng nào thực thiIComparable. Trong ví dụ kế tiếp sao, chúng ta sẽ bổ sung đối tượng Employee đểthực thi IComparable: public class Employee: IComparableĐể thực thi giao diện IComparable, đối tượng Employee phải cung cấp một phươngthứcCompareTo(): public int CompareTo(Object o) { Employee r = (Employee) o; return this.empID.CompareTo(r.empID); }Phương thức CompareTo() lấy một đối tượng làm tham số, đối tượng Employee phảiso sánh chính nó với đối tượng này và trả về -1 nếu nó nhỏ hơn đối tượng này, 1 nếunó lớn hơn, và cuối cùng là giá trị 0 nếu cả hai đối tượng bằng nhau. Việc xác địnhthứ tự của Employee thông qua thứ tự của empID là một số nguyên. Do vậy việc sosánh sẽ được ủy quyền cho thành viên empID, đây là số nguyên và nó sẽ sử dụngphương thức so sánh mặc định của kiểu dữ liệu nguyên. Điều này tương đương vớiviệc so sánh hai số nguyên. Lúc này chúng ta co thể thực hiện việc so sánh hai đốitượng Employee. Để thấy được cách sắp xếp, chúng ta cần thiết phải thêm vào cácsố nguyên vào trong mảng Employee, các số nguyên này được lấy một cách ngẫunhiên. Để tạo một giá trị ngẫu nhiên, chúng ta cần thiết lập một đối tượng của lớpRandom, lớp này sẽ trả về một số giả số ngẫu nhiên. Phương thức Next() đượcnạp chồng, trong đó một phiên bản cho phép chúng ta truyền vào một số nguyên thểhiện một số ngẫu nhiên lớn nhất mong muốn. Trong trường hợp này chúng ta đưavào số 10 để tạo ra những số ngẫu nhiên từ 0 đến 10: Random r = new Random(); r.Next(10);Ví dụ minh họa 9.13 tạo ra một mảng các số nguyên và một mảng Employee, sau đó đưavào những số ngẫu nhiên, rồi in kết quả. Sau đó sắp xếp cả hai mảng và in kết quả ...
Nội dung trích xuất từ tài liệu:
Mảng, Chỉ Mục, Tập Hợp phần 6Khi tạo đối tượng ArrayList, không cần thiết phải định nghĩa số đối tượng mà nósẽ chứa. Chúng ta thêm vào ArrayList bằng cách dùng phương thức Add(), và danhsách sẽ quan lý những đối tượng bên trong mà nó lưu giữ. Ví dụ 9.12 sau minh họa sửdụng ArrayList. Ví dụ 9.12: Sử dụng ArrayList.-----------------------------------------------------------------------------namespace Programming_CSharp{ using System; using System.Collections; // một lớp đơn giản để lưu trữ trong mảng public class Employee { public Employee(int empID) { this.empID = empID; } public override string ToString() { return empID.ToString(); } public int EmpID { get { return empID; } set { empID = value; } } private int empID;}public class Tester{ static void Main() { ArrayList empArray = new ArrayList(); ArrayList intArray = new ArrayList(); // đưa vào mảng for( int i = 0; i < 5; i++) { empArray.Add( new Employee(i+100)); intArray.Add( i*5 ); } // in tất cả nội dung for(int i = 0; i < intArray.Count; i++) { Console.Write(“{0} ”,intArray[i].ToString()); } Console.WriteLine(“ ”); // in tất cả nội dung của mảng for(int i = 0; i < empArray.Count; i++) { Console.Write(“{0} ”,empArray[i].ToString()); } Console.WriteLine(“ ”); } Console.WriteLine(“empArray.Count: {0}”, empArray.Count); } Console.WriteLine(“empArray.Capacity: {0}”, empArray.Capacity); }----------------------------------------------------------------------------- Kết quả:0 5 10 15 20100 101 102 103 104empArray.Count: 5empArray.Capacity: 16-----------------------------------------------------------------------------Với lớp Array phải định nghĩa số đối tượng mà mảng sẽ lưu giữ. Nếu cố thêm cácthành phần vào trong mảng vượt quá kích thước mảng thì lớp mảng sẽ phátsinh ra ngoại lệ. Với ArrayList thì không cần phải khai báo số đối tượng mà nólưu giữ. ArrayList có một thuộc tính là Capacity, đưa ra số thành phần mà ArrayListcó thể lưu trữ: public int Capacity {virtual get; virtual set;}Mặc định giá trị của Capacity là 16, nếu khi thêm thành phần thứ 17 vào thì Capacity tựđộng nhân đôi lên là 32. Nếu chúng ta thay đổi vòng lặp như sau: for( int i = 0; i < 17; i++)thì kết quả giống như sau: 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 empArray.Capacity: 32Chúng ta có thể làm bằng tay để thay đổi giá trị của Capacity bằng hay lớn hơn giá trịCount. Nếu thiết lập giá trị của Capacity nhỏ hơn giá trị của Count, thì chương trìnhsẽ phát sinh ra ngoại lệ có kiểu như sau ArgumentOutOfRangeException.Thực thi IComparable Giống như tất cả những tập hợp, ArrayList cũng thực thi phương thức Sort() đểcho phép chúng ta thực hiện việc sắp xếp bất cứ đối tượng nào thực thiIComparable. Trong ví dụ kế tiếp sao, chúng ta sẽ bổ sung đối tượng Employee đểthực thi IComparable: public class Employee: IComparableĐể thực thi giao diện IComparable, đối tượng Employee phải cung cấp một phươngthứcCompareTo(): public int CompareTo(Object o) { Employee r = (Employee) o; return this.empID.CompareTo(r.empID); }Phương thức CompareTo() lấy một đối tượng làm tham số, đối tượng Employee phảiso sánh chính nó với đối tượng này và trả về -1 nếu nó nhỏ hơn đối tượng này, 1 nếunó lớn hơn, và cuối cùng là giá trị 0 nếu cả hai đối tượng bằng nhau. Việc xác địnhthứ tự của Employee thông qua thứ tự của empID là một số nguyên. Do vậy việc sosánh sẽ được ủy quyền cho thành viên empID, đây là số nguyên và nó sẽ sử dụngphương thức so sánh mặc định của kiểu dữ liệu nguyên. Điều này tương đương vớiviệc so sánh hai số nguyên. Lúc này chúng ta co thể thực hiện việc so sánh hai đốitượng Employee. Để thấy được cách sắp xếp, chúng ta cần thiết phải thêm vào cácsố nguyên vào trong mảng Employee, các số nguyên này được lấy một cách ngẫunhiên. Để tạo một giá trị ngẫu nhiên, chúng ta cần thiết lập một đối tượng của lớpRandom, lớp này sẽ trả về một số giả số ngẫu nhiên. Phương thức Next() đượcnạp chồng, trong đó một phiên bản cho phép chúng ta truyền vào một số nguyên thểhiện một số ngẫu nhiên lớn nhất mong muốn. Trong trường hợp này chúng ta đưavào số 10 để tạo ra những số ngẫu nhiên từ 0 đến 10: Random r = new Random(); r.Next(10);Ví dụ minh họa 9.13 tạo ra một mảng các số nguyên và một mảng Employee, sau đó đưavào những số ngẫu nhiên, rồi in kết quả. Sau đó sắp xếp cả hai mảng và in kết quả ...
Tìm kiếm theo từ khóa liên quan:
Công nghệ thông tin kỹ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# Mảng Chỉ Mục Tập Hợp phần 6Gợi ý tài liệu liên quan:
-
52 trang 429 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 312 0 0 -
74 trang 294 0 0
-
96 trang 291 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 288 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 278 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 274 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 271 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 263 0 0