ArrayList vs Array trong C#: Sự khác biệt và so sánh

Trong C#, mảng và ArrayList được biết đến là những kiểu dữ liệu được sử dụng nhiều nhất. Mảng là chức năng chính của ngôn ngữ lập trình C#, trong khi ArrayList trong C# là một tập hợp.

Các nội dung chính

  1. ArrayList là một bộ sưu tập động, có thể thay đổi kích thước, có thể lưu trữ các phần tử thuộc bất kỳ loại dữ liệu nào, tự động điều chỉnh kích thước của nó khi các phần tử được thêm hoặc xóa. Tuy nhiên, nó có thể có chi phí hiệu suất do đóng hộp và mở hộp các loại giá trị.
  2. Mảng trong C# là các tập hợp có kích thước cố định, được gõ mạnh, có thể lưu trữ các phần tử của một loại dữ liệu cụ thể, mang lại hiệu suất tốt hơn do loại bỏ hộp và mở hộp nhưng yêu cầu kích thước được xác định trước khi khởi tạo.
  3. Sự khác biệt chính giữa ArrayList và Array trong C# là tính linh hoạt và an toàn kiểu, với ArrayList cung cấp khả năng thay đổi kích thước động và lưu trữ nhiều kiểu dữ liệu. Ngược lại, mảng cung cấp hiệu suất tốt hơn và an toàn kiểu nhưng có kích thước cố định.

ArrayList so với Array trong C#

ArrayList là một danh sách động của các đối tượng có thể tăng hoặc giảm kích thước, trong khi một mảng có kích thước cố định. ArrayList có các phương thức để thao tác dữ liệu, chẳng hạn như thêm hoặc xóa các phần tử, trong khi một mảng yêu cầu thay đổi kích thước thủ công. ArrayList có thể lưu trữ các phần tử có kiểu dữ liệu khác nhau, trong khi một mảng có thể lưu trữ các phần tử có cùng kiểu dữ liệu.

Để truy cập dữ liệu từ ArrayList, người ta cần lặp nó bằng cách sử dụng đối tượng, trong khi đó, trong một mảng, bạn có thể dễ dàng truy cập chúng mà không cần bất kỳ đối tượng nào.

ArrayList so với Array trong C

 

Bảng so sánh

Tham số so sánhLập danh sáchMảng
KiểuArrayList thuộc loại không chung chungMột mảng được gõ mạnh. Chỉ có thể lưu trữ các giá trị của cùng một kiểu dữ liệu.
Số phần tửNó là động, vì vậy bất kỳ số loại dữ liệu nào cũng có thể được lưu trữChỉ có thể thêm một số phần tử cố định.
hiệu suấtNó làm giảm hiệu suất kể từ khi sử dụng quyền anh và mở hộp.Nó có hiệu suất tốt hơn.
Giá trị NULLNó có thể chấp nhận giá trị NULLNó không
LớpNó sử dụng lớp tĩnhNó sử dụng một không gian tên System. bộ sưu tập
Ghim cái này ngay để nhớ sau
Ghim cái này

 

ArrayList trong C# là gì?

Danh sách mảng được khởi tạo bằng giao diện danh sách. Nó được coi là một trong những dữ liệu linh hoạt nhất trong C#. Một bộ sưu tập trong các ngôn ngữ lập trình là một lớp đặc biệt lưu trữ dữ liệu và cho phép các lập trình viên truy xuất nó.

  1. ArrayList không có bất kỳ kích thước cố định nào, kích thước bộ nhớ là động và bạn có thể thay đổi nó khi muốn. Nếu một lập trình viên đã khởi tạo bộ nhớ cho 4 phần tử, người ta có thể thêm một phần tử nữa.
  2. Trong danh sách mảng, kích thước được tăng lên với giá trị 2^n. Ngoài ra, ArrayList không chung chung, cho phép chúng ta lưu trữ các phần tử thuộc các kiểu dữ liệu khác nhau.
  3. Một số chức năng cần thiết cho ArrayList là RemoveAt(), Remove(), Insert() và Add().
  4. Ngoài ra, nó có thể lưu trữ phần tử null.
Cũng đọc:  Picfair vs Alamy: Sự khác biệt và So sánh

Ví dụ

                                    Sử dụng Hệ thống. bộ sưu tập;

                                    ArrayList a = new ArrayList();

                                    a.add(1, “xin chào”);

                                    a.add(4);

                                    a.add(8.23);

                                    a.add(null);

Một số chức năng được sử dụng để tương tác với dữ liệu được lưu trữ trong ArrayList.

  1. Add(): dùng để thêm các phần tử trong ArrayList.
  2. Insert(): dùng để chèn các phần tử vào chỉ số cụ thể trong ArrayList.
  3. Remove(): nó được sử dụng để loại bỏ một phần tử duy nhất,
  4. RemoveAt(): Loại bỏ các phần tử cụ thể trong ArrayList.
 

Mảng trong C# là gì?

Mảng là một kiểu dữ liệu mà người lập trình có thể lưu trữ dữ liệu cùng kiểu và có độ dài cố định. Giá trị của độ dài và dữ liệu không thể thay đổi trong thời gian chạy. Tất cả các phần tử mảng được cung cấp các giá trị chỉ mục và chỉ mục mảng bằng không.

Do đó, giá trị mặc định là XNUMX của chỉ mục cho phần tử đầu tiên trong mảng. Các cú pháp để khai báo và định nghĩa mảng trong C# như sau. Vì mảng là kiểu dữ liệu tham chiếu nên bộ nhớ của nó được cấp phát trong bộ nhớ heap.

                                    Int[] mảng = new int[] { 10,20,30,40};

                        10 20 30 40 dữ liệu

                        0 1 2 3 Chỉ số

Một số điểm quan trọng về mảng.

  1. Mảng có kích thước cố định và được gõ mạnh. T có nghĩa là, ví dụ, nếu bạn tạo một mảng các giá trị số nguyên, thì bạn không thể lưu trữ các chuỗi.
  2. Vì không có mở hộp hoặc đóng gói dữ liệu nên nó hoạt động tốt hơn.

Sự khác biệt chính giữa ArrayList và Array trong C#

  1. Kích thước mảng là cố định và chứa tập hợp tuần tự của tất cả các phần tử cùng loại. Kích thước danh sách mảng không cố định và tăng theo 2^n.
  2. Kích thước của mảng và độ dài của mỗi kích thước được khởi tạo khi mảng được tạo. Không thể thay đổi giá trị độ dài của mảng trong thời gian chạy. Đối với ArrayList, giá trị độ dài của danh sách mảng có thể thay đổi linh hoạt.
  3. Chỉ số của phần tử đầu tiên trong mảng là 0 và chỉ số của phần tử cuối cùng là n-1, trong đó n là độ dài của kích thước của mảng.
  4. ArrayList chứa các phần tử có kiểu dữ liệu khác nhau, trong khi một mảng chứa dữ liệu có kiểu dữ liệu tương tự. Ví dụ, nếu Array có kiểu số nguyên thì trong mảng chỉ có thể lưu trữ các số nguyên.
  5. Mảng là kiểu dữ liệu được gõ mạnh và hiệu quả của nó tốt hơn ArrayList. Vì trong Arraylist, việc mở hộp và đóng gói là cần thiết nên nó kém hiệu quả hơn.
  6. Kích thước ArrayList tự động tăng lên; do đó bạn cần phải đưa ra bất kỳ kích thước.
Sự khác biệt giữa X và Y 43
dự án
  1. Lớp ArrayList (System.Collections) | Tài liệu Microsoft
  2. https://www.itu.dk/research/c5/latest/ITU-TR-2006-76.pdf

Bạn muốn lưu bài viết này cho sau này? Nhấp vào trái tim ở góc dưới cùng bên phải để lưu vào hộp bài viết của riêng bạn!

về tác giả

Chara Yadav có bằng MBA về Tài chính. Mục tiêu của cô là đơn giản hóa các chủ đề liên quan đến tài chính. Cô đã làm việc trong lĩnh vực tài chính khoảng 25 năm. Cô đã tổ chức nhiều lớp học về tài chính và ngân hàng cho các trường kinh doanh và cộng đồng. Đọc thêm tại cô ấy trang sinh học.