(TIỂU LUẬN) tìm hiểu LIST và ARRAY LIST trong C

17 2 0
(TIỂU LUẬN) tìm hiểu LIST và ARRAY LIST trong C

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

PHẦN 2: NỘI DUNG 1 Giới thiệu List 1.1 List là gì? List là một danh sách chứa các đối tượng (các nút (node) – lưu trữ các thông tin dữ liệu và địa chỉ của nút kế tiếp, nút trước đó) liên kết với nhau và cho phép chèn thêm hay xóa bất kì một đối tượng nào trong danh sách. Là một cấu trúc dữ liệu cơ bản để biết thêm tham khảo tại danh sách liên kết đơn. 1.2 Ưu và nhược điểm của List Việc sử dụng thành thạo các hàm trong “list” nói chung hoặc danh sách “list” nói riêng sẽ giúp ích rất nhiều về vấn đề quản lý, có thể là quản lý một danh sách thông tin nào đó, với các hàm đã được hỗ trợ viết sẵn sẽ giúp dễ dàng cập nhật và sửa chữa. List hỗ trợ vòng lặp 2 chiều, nhưng lại không thể truy cập ngẫu nhiên như các mảng thông thường vì vậy mà việc tìm kiếm một phần tử trong danh sách sẽ rất chậm, lí do từ việc cấu trúc của List được xây dựng tương tự danh sách liên kết đơn. 1.3 Các thao tác trên List List là một trong những kiểu dữ liệu cơ bản trong C, chứa các phần tử của cùng loại và có thể được thao tác một cách dễ dàng. Dưới đây là một số thao tác phổ biến của List: • Add() – Thêm một phần tử vào cuối List • Insert() – Thêm một phần tử mới vào List ở vị trí bất kỳ • Remove() – Xóa một phần tử khỏi List • RemoveAt() – Xóa phần tử ở vị trí bất kỳ khỏi List • Clear() – Xóa toàn bộ phần tử khỏi List • Contains() – Kiểm tra xem phần tử có tồn tại trong List hay không • IndexOf() – Trả về vị trí đầu tiên của phần tử trong List • Count – Trả về số lượng phần tử trong List • Sort() – Sắp xếp một List theo thứ tự được chỉ định (tăng dần hoặc giảm dần) • Reverse() – Đảo ngược thứ tự các phần tử trong List Với các phương thức này, người lập trình có thể tùy chỉnh List theo yêu cầu của mình và thực hiện các tác vụ liên quan đến dữ liệu một cách dễ dàng.

NHĨM BỘ CƠNG THƯƠNG TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THỰC PHẨM TP HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN TIỂU LUẬN HỌC PHẦN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT TIỂU LUẬN: Đề Tài 15: TÌM HIỂU LIST, ARRAYLIST TRONG C# NHĨM Thành Phố Hồ Chí Minh, ngày , tháng , năm 2023 BỘ CÔNG THƯƠNG NHĨM TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THỰC PHẨM TP HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN TIỂU LUẬN: ĐỀ TÀI 15: TÌM HIỂU LIST, ARRAYLIST TRONG C# Thành Phố Hồ Chí Minh, ngày , tháng , năm 2023 Nhóm: Giảng viên hướng dẫn: Trưởng nhóm: Vũ Đình Đăng Khoa-2001222099 Trần Văn Thọ Thành viên: Dương Tấn Lên-2001222239 Nguyễn Hải Đăng-2001220959 Bùi Tấn Đạt-2001220879 Huỳnh Hoàng Sơn-2001224188 Lời Cam Đoan Em/Chúng em xin cam đoan đề tài tiểu luận TÌM HIỂU LIST, ARRAYLIST TRONG C# cá nhân/nhóm nghiên cứu thực NHÓM Em/ chúng em kiểm tra liệu theo quy định hành Kết làm đề TÌM HIỂU LIST, ARRAYLIST TRONG C trung thực khơng chép từ tập nhóm khác Các tài liệu sử dụng tiểu luận có nguồn gốc, xuất xứ rõ ràng (Ký ghi rõ họ tên) MỤC LỤC PHẦN 1: PHẦN MỞ ĐẦU NHÓM PHẦN 2: NỘI DUNG Giới thiệu List 1.1 List gì? 1.2 Ưu nhược điểm List .6 1.3 Các thao tác List 1.4 Cấu tạo List 1.5 Cơ chế hoạt động List 1.6 Khởi tạo List 1.7 Thêm xóa phần tử List 1.8 Tìm kiếm thơng tin List 1.9 Duyệt phần tử List Giới thiệu array list .11 2.1 Array List gì? .11 2.2 Ưu nhược điểm Array List 11 2.3 Các thao tác Array List 11 2.4 Cấu tạo ArrayList .12 2.5 Cơ chế hoạt động ArrayList .12 2.6 Khởi tạo ArrayList 13 2.7 Thêm xóa phần tử ArrayList 14 2.8 Tìm kiếm thơng tin ArrayList 14 2.9 Duyệt phần tử ArrayList 15 PHẦN 3: KẾT LUẬN CHUNG 16 BIÊN BẢN NHÓM 17 PHẦN 1: PHẦN MỞ ĐẦU Cùng với phát triển khoa học, kỹ thuật, công nghệ thông tin nước ta năm gần phát triển mạng ngành cơng nghệ thơng tin NHĨM ngành thu hút nhiều học sinh cho trường đại học Khi bắt đầu với ngành công nghệ thông tin tìm hiểu ngơn ngữ lập trình C,C++,C# là học phần mà sinh viên HUFI học học ngành công nghệ thông tin trường Đại Học Công Nghiệp Thực Phẩm Học phần cung cấp cho sinh viên kiến thức chuyên sâu List ArrayList Mục tiêu: - Tìm hiểu cấu trúc liệu cách vận hành List ArrayList - Phát huy khả tự tìm kiến, đọc tài liệu sinh viên - Sinh viên học cách tự khái quát, trừu tượng kiến thức dựa kiến thức cũ - Biết cách viết tìm hiểu, nghiên cứu mức đơn giản - Cải thiện khả thuyết trình sinh viên - Học cách làm việc nhóm NHĨM PHẦN 2: NỘI DUNG Giới thiệu List 1.1 List gì? List danh sách chứa đối tượng (các nút (node) – lưu trữ thông tin liệu địa nút kế tiếp, nút trước đó) liên kết với cho phép chèn thêm hay xóa đối tượng danh sách Là cấu trúc liệu để biết thêm tham khảo danh sách liên kết đơn 1.2 Ưu nhược điểm List Việc sử dụng thành thạo hàm “list” nói chung danh sách “list” nói riêng giúp ích nhiều vấn đề quản lý, quản lý danh sách thơng tin đó, với hàm hỗ trợ viết sẵn giúp dễ dàng cập nhật sửa chữa List hỗ trợ vòng lặp chiều, lại truy cập ngẫu nhiên mảng thơng thường mà việc tìm kiếm phần tử danh sách chậm, lí từ việc cấu trúc List xây dựng tương tự danh sách liên kết đơn 1.3 Các thao tác List List kiểu liệu C#, chứa phần tử loại thao tác cách dễ dàng Dưới số thao tác phổ biến List: Add() – Thêm phần tử vào cuối List Insert() – Thêm phần tử vào List vị trí Remove() – Xóa phần tử khỏi List RemoveAt() – Xóa phần tử vị trí khỏi List Clear() – Xóa tồn phần tử khỏi List Contains() – Kiểm tra xem phần tử có tồn List hay khơng IndexOf() – Trả vị trí phần tử List Count – Trả số lượng phần tử List Sort() – Sắp xếp List theo thứ tự định (tăng dần giảm dần)  Reverse() – Đảo ngược thứ tự phần tử List          Với phương thức này, người lập trình tùy chỉnh List theo u cầu thực tác vụ liên quan đến liệu cách dễ dàng NHÓM 1.4 Cấu tạo List Trong C#, List kiểu liệu sử dụng để lưu trữ phần tử có loại liệu List sử dụng rộng rãi để lưu trữ quản lý liệu, cho phép thêm, sửa, xóa tìm kiếm phần tử danh sách Cấu trúc List gồm thành phần sau:  Dữ liệu: List lưu trữ phần tử danh sách, phần tử có khác kiểu liệu  Size: List cấp phát kích thước để lưu trữ phần tử Khi danh sách đầy, phần tử thêm vào  Count: List ghi nhận số phần tử có danh sách  Index: List lưu trữ phần tử theo thứ tự cho phép truy xuất phần tử theo số  Capacity: dung lượng List  Method: List bao gồm phương thức để thêm, sửa, xóa tìm kiếm phần tử danh sách List C# sử dụng dynamic array để lưu trữ cung cấp số phương thức để quản lý động Vì vậy, List tải dung lượng nó, chương trình tự động tăng dung lượng List cách động để lưu thêm liệu 1.5 Cơ chế hoạt động List List C# cấu trúc liệu linh hoạt cho phép lưu trữ tập hợp đối tượng truy cập theo vị trí Cơ chế hoạt động List xây dựng dựa mảng động, phần tử lưu trữ liên tiếp vùng nhớ máy tính Khi thêm phần tử vào List, List đầy, mảng tạo phần tử List chép vào mảng phần tử thêm vào mảng Các phần tử List lưu trữ theo thứ tự truy cập cách sử dụng số Chỉ số phần tử List số phần tử cuối số phần tử List trừ Ngoài ra, List cung cấp phương thức để thêm, xóa, tìm kiếm truy xuất danh sách phần tử Các phương thức cung cấp để cung cấp tính linh hoạt cho việc thao tác với List, giúp người lập trình dễ dàng truy cập sử dụng phần tử List cách hiệu NHÓM 1.6 Khởi tạo List Các khởi tạo List bao gồm:  Khởi tạo trống: List name = new List();  Khởi tạo với số lượng phần tử cố định: List name = new List(capacity);  Khởi tạo thêm phần tử vào List: List name = new List { item1, item2, };  Khởi tạo cách chép phần tử từ collection khác: List name = new List(collection); Trong C#, để khởi tạo danh sách (List), bạn sử dụng cú pháp sau: List danhSach = new List(); Trong đó, T kiểu phần tử danh sách định trước khởi tạo Ví dụ, bạn muốn khởi tạo danh sách chuỗi, bạn sử dụng: List danhSach = new List(); Sau khởi tạo, bạn thêm phần tử vào danh sách cách sử dụng phương thức Add(), ví dụ: danhSach.Add("phần tử 1"); danhSach.Add("phần tử 2"); danhSach.Add("phần tử 3"); Bạn khởi tạo danh sách với phần tử ban đầu cách chuyền mảng phần tử vào phương thức khởi tạo, ví dụ: string[] mangPhanTu = new string[] { "phần tử 1", "phần tử 2", "phần tử 3" }; List danhSach = new List(mangPhanTu); 1.7 Thêm xóa phần tử List *Cở chế thao tác thêm phân tử List ngơn ngữ lập trình C#: - List kiểu liệu tổng quát (generic) chứa phần tử có kiểu liệu - List sử dụng mảng động (dynamic array) để lưu trữ phần tử - Khi thêm phần tử vào List, mảng động đủ không gian, phần tử thêm vào vị trí cuối mảng kích thước List tăng lên - Nếu mảng động đầy, List tạo mảng có kích thước lớn chép tất phần tử từ mảng cũ sang mảng Sau đó, phần tử NHĨM thêm vào vị trí cuối mảng kích thước List tăng lên - Thao tác thêm phần tử vào List có độ phức tạp trung bình O(1), lên đến O(n) trường hợp phải tạo mảng chép phần tử *Trong ngôn ngữ lập trình C#, phương thức Remove RemoveAt lớp List sử dụng để xóa phần tử List   Phương thức Remove xóa phần tử List có giá trị với giá trị định Phương thức RemoveAt xóa phần tử số định 1.8 Tìm kiếm thơng tin List -Có nhiều cách để tìm kiếm phần tử List C# Bạn sử dụng phương thức Find lớp List để tìm kiếm phần tử danh sách Phương thức Find nhận đối số biểu thức lambda để lọc/tìm kiếm danh sách cho phần tử Nếu bạn cần tìm nhiều phần tử, bạn sử dụng phương thức FindAll Ví dụ: List list = // ; CompareDesignGroup item = list.Find(c => c.FieldId == "SomeFieldId"); 1.9 Duyệt phần tử List -Có nhiều cách để duyệt qua phần tử List C# Một cách phổ biến sử dụng vòng lặp foreach để duyệt qua phần tử danh sách Ví dụ: List numbers = new List { 1, 2, 3, 4, }; foreach (int number in numbers) { Console.WriteLine(number);} Trong number nhận giá trị phần tử danh sách numbers in hình Ngồi ra, bạn sử dụng vịng lặp for để duyệt qua phần tử danh sách cách sử dụng số chúng Ví dụ: List numbers = new List { 1, 2, 3, 4, }; for (int i = 0; i < numbers.Count; i++) NHÓM { Console.WriteLine(numbers[i]); } Trong numbers[i] nhận giá trị phần tử danh sách numbers in hình Giới thiệu array list 2.1 Array List gì? Là Collections giúp lưu trữ quản lý danh sách đối tượng theo kiểu mảng (truy cập phần tử bên thơng qua số index) 10 NHĨM Rất giống mảng object thêm xố phần tử cách linh hoạt tự điều chỉnh kích cỡ cách tự động 2.2 Ưu nhược điểm Array List Ưu điểm:  Cho phép lưu trữ phần tử thêm xóa linh hoạt  Dễ dàng truy cập vào phần tử bên ArrayList dựa số  ArrayList có khả thực nhanh thao tác thêm, sửa, xóa phần tử  Nó có khả tự động mở rộng kích thước để chứa phần tử Nhược điểm:  ArrayList cấp phát nhớ liên tục khơng thể phân mảnh, điều có nghĩa việc thêm xố phần tử dẫn đến tình trạng lãng phí nhớ u cầu công sức để di chuyển phần tử khác  Tìm kiếm phần tử ArrayList sử dụng phương thức indexOf() chậm ArrayList chứa hàng trăm nghìn phần tử nhiều  ArrayList lưu trữ đối tượng, khơng thể lưu trữ kiểu liệu nguyên thủy số nguyên, số thực, v.v 2.3 Các thao tác Array List Arraylist kiểu liệu C#, cho phép lưu trữ tập hợp phần tử Các thao tác ArrayList gọi phương thức, bao gồm: Add(): Thêm phần tử vào cuối danh sách Insert(): Thêm phần tử vào danh sách vị trí định Remove(): Xóa phần tử khỏi danh sách RemoveAt(): Xóa phần tử vị trí định khỏi danh sách Clear(): Xóa tất phần tử khỏi danh sách Contains(): Kiểm tra xem phần tử có tồn danh sách hay khơng IndexOf(): Trả vị trí phần tử có danh sách Count: Trả số lượng phần tử có danh sách Sort: Sắp xếp phần tử danh sách theo thứ tự tăng dần giảm dần TrimToSize: Giảm kích thước danh sách để chứa số phần tử có  ToArray: Chuyển đổi danh sách ArrayList sang mảng           11 NHÓM  AddRange: Thêm tất phần tử danh sách định vào cuối danh sách  InsertRange: Thêm tất phần tử danh sách định vào vị trí định danh sách  RemoveRange: Xóa tất phần tử khoảng danh sách định  ToArray: Trả mảng chuyển đổi từ ArrayList Các thao tác giúp cho việc quản lý liệu ArrayList trở nên dễ dàng hiệu 2.4 Cấu tạo ArrayList ArrayList C# cấu trúc liệu trỏ động, tức sử dụng để lưu trữ đối tượng thay đổi kích thước ArrayList bao gồm hai thành phần chính:  Mảng (array): Mảng ArrayList tạo cách sử dụng mảng tĩnh Nếu mảng đầy, ArrayList tạo mảng với kích thước lớn  Con trỏ (Pointer): Con trỏ ArrayList giữ thông tin số lượng phần tử ArrayList, kích thước mảng vị trí phần tử mảng  Để sử dụng ArrayList C#, ta phải khai báo đối tượng ArrayList thực hoạt động thêm phần tử, xoá phần tử, truy xuất phần tử, 2.5 Cơ chế hoạt động ArrayList Trong C#, ArrayList lớp liệu động sử dụng để lưu trữ tập hợp phần tử đối tượng, giống mảng động ArrayList sử dụng để thêm, xóa truy xuất phần tử danh sách Các phần tử danh sách loại đối tượng nào, bao gồm đối tượng xác định người dùng ArrayList lập mục cách sử dụng số nguyên để truy cập trực tiếp phần tử danh sách Mỗi phần tử ArrayList lưu trữ dạng đối tượng, đó, đối tượng cần phải chuyển đổi sang kiểu phù hợp trước sử dụng Cách hoạt động ArrayList thực thông qua phương thức thuộc tính Các phương thức bao gồm Add, Insert, Remove, Clear, Sort, 12 NHĨM BinarySearch, Contains, Count, IndexOf Các thuộc tính bao gồm Capacity, Count, Item Khi tạo ArrayList, khởi tạo mảng động có dung lượng khởi tạo ban đầu, sau cung cấp cho phương thức Add() để thêm phần tử vào danh sách Khi danh sách tràn dung lượng cung cấp, tạo dung lượng vùng nhớ cấp phát cho tăng gấp đơi Tuy nhiên, sử dụng ArrayList có số hạn chế Các phần tử ArrayList phải chuyển đổi sang kiểu phù hợp trước sử dụng, điều gây thời gian xử lý tăng chi phí cho việc thực Hơn nữa, ArrayList lớp đối tượng thay kiểu giá trị, đó, chịu ảnh hưởng lớn đến hiệu suất tổng thể ứng dụng bạn Trong C#, bạn sử dụng lớp liệu khác List, LinkedList, Stack, Queue để lưu trữ quản lý phần tử danh sách Tùy thuộc vào nhu cầu bạn, bạn chọn lớp liệu phù hợp để sử dụng ứng dụng để đạt hiệu suất tối ưu 2.6 Khởi tạo ArrayList Trong C#, để khởi tạo ArrayList, bạn sử dụng cú pháp: using System.Collections; ArrayList myArrayList = new ArrayList(); Cách khởi tạo ArrayList rỗng Bạn khởi tạo ArrayList có sẵn phần tử cách truyền vào mảng giá trị: using System.Collections; ArrayList myArrayList = new ArrayList(new object[] {"hello", 123, true}); Cú pháp tạo ArrayList chứa phần tử, chuỗi "hello", số nguyên 123 giá trị boolean true 2.7 Thêm xóa phần tử ArrayList -Để thêm phần tử váo Arraylist ngơn ngữ c#, bạn sử dụng phương thức Add() để thêm đối tượng vào phần cuối ArrayList sử 13 NHÓM dụng phương thức AddRange() để thêm tất phần tử từ Icollection vào phần cuối Arraylist Ví dụ: ArrayList arrayList = new ArrayList(); arrayList.Add("Hello"); arrayList.Add(123); -Để xóa phần tử ArrayList ngơn ngữ lập trình C#, bạn sử dụng phương thức Remove() để xóa phần tử xuất ArrayList sử dụng phương thức RemoveAt() để xóa phần tử vị trí index định Ví dụ: ArrayList arrayList = new ArrayList(); arrayList.Add("Hello"); arrayList.Add(123); arrayList.Remove("Hello"); // Xóa phần tử "Hello" arrayList.RemoveAt(0); // Xóa phần tử 2.8 Tìm kiếm thơng tin ArrayList Có thể tìm kiếm phần tử ArryList C# cách sử dụng vòng lặp để duyệt qua phần tử danh sách so sánh giá trị chúng với giá trị cần tìm kiếm Ví dụ: bool found = false; foreach (Item item in arr) { if ("Some Description".Equals(item.Description, StringComparison.OrdinalIgnoreCase)) { found = true; break; } } 14 NHĨM Trong found true có phần tử naoaf ttrong danh sách khớp với kiện cần tìm kiếm 2.9 Duyệt phần tử ArrayList -Có nhiều cách để duyệt qua phần tử ArrayList C# Một cách phổ biến sử dụng vòng lặp foreach để duyệt qua phần tử danh sách Ví dụ: ArrayList numbers = new ArrayList { 1, 2, 3, 4, }; foreach (int number in numbers) { Console.WriteLine(number); } Trong number nhận giá trị phần tử danh sách numbers in hình Ngồi ra, bạn sử dụng vòng lặp for để duyệt qua phần tử danh sách cách sử dụng số chúng Ví dụ: ArrayList numbers = new ArrayList { 1, 2, 3, 4, }; for (int i = 0; i < numbers.Count; i++) { Console.WriteLine(numbers[i]); } Trong numbers[i] nhận giá trị phần tử danh sách numbers in hình PHẦN 3: KẾT LUẬN CHUNG Trong C#, List ArrayList hai loại cấu trúc liệu mà sử dụng để lưu trữ quản lý phần tử tập hợp List: lớp Generics C#, cho phép lưu trữ đối tượng kiểu cung cấp phương thức để thêm, xóa, xếp truy cập phần tử danh sách List cấu trúc liệu linh hoạt dễ sử dụng môi trường lập trình C# 15 NHĨM ArrayList: lớp non-Generic C#, sử dụng để lưu trữ đối tượng định dạng object ArrayList cho phép thêm, xóa, xếp truy cập phần tử danh sách Tuy nhiên, ArrayList cấu trúc liệu lỗi thời thay List Tóm lại, List ArrayList hai cấu trúc liệu phổ biến lập trình C#, List ưu tiên khuyến khích sử dụng tính linh hoạt, hiệu suất an tồn so với ArrayList BIÊN BẢN NHĨM TÊN MSSV CƠNG VIỆC MỨC ĐỘ HỒN THÀNH Vũ Đình Đăng Khoa (nhóm trưởng) Dương Tấn Lên 2001222099 Chương trình C/C++ Làm word phần 100% 2001222239 100% 16 NHĨM Huỳnh Hồng Sơn Nguyễn Hải Đăng Nguyễn Tấn Đạt 2001224188 2001220959 2001220879 tìm hiểu C# Làm word phần tìm hiểu C# Chương trình C/C++ Thiết kế powerpoint 100% 100% 100% 17

Ngày đăng: 17/10/2023, 14:38

Tài liệu cùng người dùng

Tài liệu liên quan