Sự khác biệt giữa Arrays và Arraylists
Mảng Arrays vs Arrayylists
Mảng là cấu trúc dữ liệu được sử dụng phổ biến nhất để lưu trữ một bộ sưu tập các yếu tố. Hầu hết các ngôn ngữ lập trình cung cấp các phương pháp để dễ dàng tuyên bố mảng và các yếu tố truy cập trong các mảng. Một arraylist có thể được xem như là một mảng động, có thể phát triển trong kích thước. Vì lý do này, lập trình viên không cần phải biết kích thước của người arraylist khi cô định nghĩa nó.
Mảng là gì?
Hiển thị trong hình 1, là một đoạn mã thường được sử dụng để khai báo và gán các giá trị cho một mảng. Hình 2 miêu 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ã cho việc khai báo và gán các giá trị cho mảng
100 | 101 | 102 | 103 | 104 |
Chỉ mục: 0 | 1 | 2 < 3 | 4 | Hình 2: Mảng lưu trữ trong bộ nhớ |
Arraylists là gì?
Một arraylist có thể được xem như là một mảng động, có thể phát triển trong kích thước. Do đó những người arraylist lý tưởng để được sử dụng trong tình huống mà bạn không biết kích thước của các yếu tố cần thiết tại thời điểm tuyên bố. Trong Java, các arraylist chỉ có thể chứa các đối tượng, chúng không thể giữ 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 wrapper của các kiểu nguyên thuỷ). Nói chung arraylists được cung cấp với các phương pháp để thực hiện chèn, xóa và tìm kiếm. Thời gian phức tạp của truy cập vào một phần tử là o (1), trong khi chèn và xóa có độ phức tạp về thời gian của o (n). Trong Java, các arraylist có thể được đi qua bằng cách sử dụng vòng foreach, vòng lặp hoặc chỉ đơn giản bằng cách sử dụng các chỉ số.
Sự khác nhau giữa Mảng và ArrayLists
Mặc dù mảng và ArrayLists giống nhau theo nghĩa cả hai đều được sử dụng để lưu trữ các bộ sưu tập của 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 cho khi một mảng được định nghĩa, nhưng bạn có thể định nghĩa một mảng mà không biết kích thước thực. Bạn có thể thêm các phần tử vào một ArrayList sau khi nó được định nghĩa và điều này là không thể với mảng.Nhưng trong Java, các arraylist không thể giữ các kiểu nguyên thuỷ, nhưng các mảng có thể được sử dụng để giữ 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 mà có thể thay đổi kích thước của nó, arraylist sẽ là sự lựa chọn tốt nhất.