Skip to main content

Danh sách mảng là gì?

Một danh sách mảng trong lập trình máy tính là một cấu trúc dữ liệu hoạt động giống như một mảng máy tính nhưng cũng thực hiện khả năng phát triển tự động kích thước của mảng khi cần thiết.Không giống như kiểu dữ liệu mảng nội tại, không thể thay đổi kích thước trong quá trình thực hiện chương trình, cấu trúc arraylist có thể phát triển và thu nhỏ kích thước của mảng để đáp ứng với việc bổ sung hoặc xóa các phần tử.Nó có một hồ sơ hiệu suất rất thuận lợi, cho phép truy cập ngẫu nhiên nhanh chóng vào việc thu thập dữ liệu.Tuy nhiên, có hai trường hợp, trong đó nó chậm hơn một số cấu trúc dữ liệu khác, cụ thể là việc bổ sung và loại bỏ các phần tử từ giữa mảng.Hầu hết các ngôn ngữ lập trình hướng đối tượng đều có một số loại thực hiện danh sách như vậy, mặc dù đôi khi chúng được gọi là mảng động. Sử dụng một danh sách ArrayList cung cấp một chương trình có khả năng truy cập các đối tượng dữ liệu với số chỉ mục ngay lập tức thay vì phải đi quaToàn bộ chuỗi dữ liệu để tìm một địa chỉ, được yêu cầu với các danh sách được liên kết.Với khả năng tăng kích thước của mảng khi cần thiết, đó là một cách tiếp cận rất cân bằng xem xét cả tính linh hoạt và tốc độ.Ngoài ra, khi các phần tử bị xóa khỏi danh sách như vậy, kích thước của mảng bị giảm, giải phóng không gian bộ nhớ.lưu trữ.Trong trường hợp của một danh sách được liên kết hoặc bảng băm, một đối tượng riêng thường là cần thiết để duy trì kỹ thuật được sử dụng để giữ và điều khiển bộ sưu tập.Với một danh sách mảng, thông tin duy nhất cần thiết về các đối tượng dữ liệu là địa chỉ của đối tượng trong bộ nhớ.Điều này có nghĩa là sẽ có ít sử dụng bộ nhớ trên cao hơn khi làm việc với loại danh sách này. Một vấn đề tiềm năng với việc sử dụng danh sách ArrayList có thể đến từ hệ thống quản lý bộ nhớ và triển khai.Hầu hết các mảng được phân bổ là vị trí bộ nhớ liên tiếp.Vì vậy, để sử dụng một danh sách mảng có kích thước nhất định, ít nhất là nhiều bộ nhớ phải có sẵn trong một chuỗi các khối không bị gián đoạn.Mảng động có thể tự thay đổi kích thước nhiều lần, do đó sự phân mảnh bộ nhớ có thể xảy ra và dẫn đến lỗi phân bổ bộ nhớ, tạm dừng thực thi chương trình.Mảng được gói gọn trong một đối tượng.Một trường hợp trong đó một mảng động có thể chậm lại đáng kể, tùy thuộc vào việc thực hiện, là khi kích thước của mảng cần phải được thay đổi.Điều này có thể liên quan đến việc sao chép mảng hiện tại vào một mảng mới được phân bổ cho kích thước mới mong muốn, gây ra sự xuống cấp tạm thời về hiệu suất.Vấn đề tương tự có thể gặp phải khi thêm hoặc xóa một phần tử từ giữa danh sách, khiến tất cả các yếu tố sau phải được chuyển đến một vị trí mới.