Skip to main content

Mảng động là gì?

Một mảng động là một cấu trúc dữ liệu được sử dụng trong lập trình máy tính chứa nhiều đối tượng tính toán dưới dạng một nhóm duy nhất và có thể được thay đổi kích thước để phù hợp với số lượng đối tượng khác nhau.Nhóm được giữ trong một khối bộ nhớ tiếp xúc duy nhất, do đó, truy cập vào các yếu tố là hiệu quả và nhanh chóng.Các mảng động còn được gọi là vectơ hoặc danh sách, tùy thuộc vào ngôn ngữ máy tính mà chúng được sử dụng.Mặc dù các tên này, bất kỳ danh sách hoặc vectơ cụ thể nào cũng có thể không phải là một mảng động, vì các danh sách và vectơ có thể được triển khai khác với các mảng và với nhau.được gọi là thư viện mẫu tiêu chuẩn.Mảng sao lưu lớp này có thể được truy cập bởi các trình lặp hoặc bằng các chỉ mục.Khả năng thay đổi kích thước theo yêu cầu của nó là một lợi thế lớn, nhưng nó có thể thu hút các lập trình viên vào một cảm giác bảo mật sai lầm vì nó không mạnh mẽ như nó dường như.Mảng động ủng hộ một vector không thể đảm bảo rằng các yêu cầu truy cập là hợp lệ.Giống như các mảng tĩnh, các mảng động có thể có giới hạn kiểm tra và các vấn đề tham nhũng bộ nhớ nếu một chương trình cố gắng truy cập bộ nhớ chưa được phân bổ cho chúng.Các yếu tố trong mảng chỉ được truy cập bởi các chỉ mục và cố gắng truy cập các chỉ mục bên ngoài mảng thường sẽ không gây ra các vấn đề tham nhũng bộ nhớ.Lớp vectơ Java gần tương đương với lớp vectơ C ++ và không được đồng bộ hóa để cho phép truy cập bằng nhiều luồng.Ngược lại, ArrayList và CopyOnWriteArrayList đều an toàn cho luồng.Trong ba, CopyOnWriteArrayList là lớp sử dụng nhiều lao động nhất, bởi vì nó hoàn toàn tái tạo mảng động mỗi khi một giá trị mới được ghi vào mảng.Tùy thuộc vào một ngôn ngữ cụ thể, có thể có các khả năng khác được xây dựng trên đỉnh của nó.Giống như các mảng tĩnh, các mảng động không hạn chế loại đối tượng có thể được lưu trữ bên trong chúng, miễn là tất cả chúng đều là cùng một loại đối tượng.Một lập trình viên không bao giờ cần truy cập trực tiếp một mảng động;Nó luôn có thể được thực hiện thông qua một lớp kết thúc mảng để sử dụng dễ dàng.Việc sử dụng đúng các mảng này có thể hỗ trợ một lập trình viên với mã tổ chức dữ liệu bên trong mã và cũng với việc tạo mã dễ hiểu, cho vay để bảo trì dễ dàng.