Sự khác biệt giữa Mảng và Danh sách mảng

Sự khác biệt giữa Mảng và Danh sách mảng
Sự khác biệt giữa Mảng và Danh sách mảng

Video: Sự khác biệt giữa Mảng và Danh sách mảng

Video: Sự khác biệt giữa Mảng và Danh sách mảng
Video: Khang Huy DIY | Sự khác biệt giữa Su-30MK2 và Su-27 trong cách thức hoạt động và khả năng chiến đấu 2024, Tháng mười một
Anonim

Mảng so với Danh sách mảng

Mảng là cấu trúc dữ liệu được sử dụng phổ biến nhất để lưu trữ một tập hợp các phần tử. Hầu hết các ngôn ngữ lập trình đều cung cấp các phương thức để dễ dàng khai báo mảng và truy cập các phần tử trong mảng. Một danh sách mảng có thể được coi là một mảng động, có thể phát triển về kích thước. Vì lý do này, lập trình viên không cần biết kích thước của danh sách mảng khi cô ấy đang xác định nó.

Mảng là gì?

Được thể hiện trong hình 1, là một đoạn mã thường được sử dụng để khai báo và gán giá trị cho một mảng. Hình 2 mô tả một mảng trông như thế nào trong bộ nhớ.

giá trị int [5];

giá trị [0]=100;

giá trị [1]=101;

giá trị [2]=102;

giá trị [3]=103;

giá trị [4]=104;

Hình 1: Mã khai báo và gán giá trị cho mảng

100 101 102 103 104
Chỉ số: 0 1 2 3 4

Hình 2: Mảng được lưu trữ trong bộ nhớ

Đoạn mã trên, xác định một mảng có thể lưu trữ 5 số nguyên và chúng được truy cập bằng cách sử dụng các chỉ số từ 0 đến 4. Một thuộc tính quan trọng của mảng là toàn bộ mảng được cấp phát như một khối bộ nhớ duy nhất và mỗi phần tử nhận được không gian riêng trong mảng. Khi một mảng được xác định, kích thước của nó sẽ được cố định. Vì vậy, nếu bạn không chắc chắn về kích thước của mảng tại thời điểm biên dịch, bạn sẽ phải xác định một mảng đủ lớn để ở bên an toàn. Tuy nhiên, hầu hết các trường hợp, chúng ta thực sự sẽ sử dụng ít phần tử hơn chúng ta đã phân bổ. Vì vậy, một lượng bộ nhớ đáng kể thực sự bị lãng phí. Mặt khác, nếu “mảng đủ lớn” không thực sự đủ lớn, chương trình sẽ bị lỗi.

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

Một danh sách mảng có thể được xem như một mảng động, có thể tăng kích thước. Do đó, danh sách mảng là lý tưởng để được sử dụng trong trường hợp bạn không biết kích thước của các phần tử được yêu cầu tại thời điểm khai báo. Trong Java, danh sách mảng chỉ có thể chứa các đối tượng, chúng không thể chứa các kiểu nguyên thủy trực tiếp (bạn có thể đặt các kiểu nguyên thủy bên trong một đối tượng hoặc sử dụng các lớp bao bọc của các kiểu nguyên thủy). Nói chung, danh sách mảng được cung cấp các phương thức để thực hiện chèn, xóa và tìm kiếm. Độ phức tạp thời gian của việc truy cập một phần tử là o (1), trong khi việc chèn và xóa có độ phức tạp thời gian là o (n). Trong Java, danh sách mảng có thể được duyệt bằng cách sử dụng vòng lặp foreach, trình vòng lặp hoặc chỉ đơn giản bằng cách sử dụng các chỉ mục.

Sự khác biệt giữa Mảng và Danh sách mảng là gì

Mặc dù mảng và danh sách mảng tương tự nhau theo nghĩa cả hai đều được sử dụng để lưu trữ các tập hợp các phần tử, chúng khác nhau về cách chúng được định nghĩa. Kích thước của mảng phải được cung cấp khi một mảng được xác định, nhưng bạn có thể xác định danh sách mảng mà không cần biết kích thước thực. Bạn có thể thêm các phần tử vào danh sách mảng sau khi nó được xác định và điều này là không thể với mảng. Nhưng trong Java, danh sách mảng không thể chứa các kiểu nguyên thủy, nhưng các mảng có thể được sử dụng để chứa các kiểu nguyên thủy. Nhưng nếu bạn cần một cấu trúc dữ liệu có thể thay đổi kích thước của nó, thì danh sách mảng sẽ là lựa chọn tốt nhất.

Đề xuất: