C so sánh arraylist và array năm 2024
Hôm nay chúng ta sẽ khám phá
5lớp học. Đây là lớp đầu tiên trong một số lớp được gọi là bộ sưu tập . Trong Java, các bộ sưu tập là một chủ đề rộng lớn và hữu ích đến mức toàn bộ nhiệm vụ CodeGym được dành cho chúng. Để hiểu đầy đủ cách các bộ sưu tập được cấu trúc và tất cả các sắc thái của chúng, trước tiên bạn cần tìm hiểu OOP, giao diện, kế thừa, kiến thức cơ bản về đa luồng, v.v. Vì vậy, hôm nay chúng ta sẽ chỉ làm quen với một loại tập hợp đơn giản nhất. Nhưng ở mức độ đủ sâu để bạn hiểu cách sử dụng và cách thức hoạt động của nó. Bây giờ, hãy gặp
5bộ sưu tập . cốt truyện Tôi sẽ bắt đầu với một nền tảng nhỏ. Các lập trình viên thực sự không thích một khía cạnh của mảng: thực tế là kích thước của chúng không thể thay đổi được. Điều gì sẽ xảy ra nếu bạn cần lưu trữ thêm ba phần tử trong một mảng nhưng chỉ có một ô trống? Giải pháp duy nhất cho giới hạn không gian của một mảng là tạo một mảng rất lớn để chứa tất cả các phần tử mà bạn có thể cần lưu trữ. Nhưng điều này thường là một sự lãng phí bộ nhớ. Nếu một mảng thường chứa hai hoặc ba phần tử nhưng thậm chí có khả năng rất nhỏ là nó cần lưu trữ 100 phần tử trong số đó, thì cần phải tạo một mảng có khả năng lưu trữ 100 phần tử. Vậy các lập trình viên đã nghĩ ra điều gì? Họ đã viết
5lớp, lớp này thực hiện công việc tương tự như
9lớp, nhưng có thể thay đổi kích thước. lớp ArrayList Tên của
5lớp được hình thành từ hai từ: Mảng + Danh sách.
9là một mảng và
2là một danh sách. Mỗi
5đối tượng chứa một mảng các phần tử bình thường. Khi bạn đọc các phần tử từ một
5, đối tượng sẽ truy xuất chúng từ mảng bên trong của nó. Khi bạn viết các phần tử, nó sẽ ghi chúng vào mảng bên trong. Lớp ArrayList thiếu tất cả những nhược điểm mà mảng có. Nó biết cách:
Để biết thêm chi tiết, xem bên dưới: 2. Tạo
5đối tượng Để tạo một
5đối tượng, bạn cần viết mã như sau:
7Loại/lớp của bộ sưu tập ở đâu ,
8là loại của các phần tử được lưu trữ trong
5bộ sưu tập và
0là tên của một
1biến. Biến
0có một loại chung. Nó bao gồm hai loại: loại bộ sưu tập được chỉ định trước, sau đó dấu ngoặc nhọn được sử dụng để chỉ loại phần tử được lưu trữ trong bộ sưu tập. Ví dụ: Mã số Sự miêu tả
Danh sách các số nguyên
Danh sách các chuỗi
Danh sách các số thực Không giống như mảng, các bộ sưu tập không thể lưu trữ các kiểu nguyên thủy, chỉ lưu trữ các kiểu tham chiếu . Vì vậy, nếu bạn cần một bộ sưu tập
3các s,
4thay vào đó hãy sử dụng lớp trình bao bọc. 3. Hoạt động với một
5 Ban đầu, độ dài của danh sách mới được tạo bằng 0, vì nó chứa 0 phần tử. Nếu bạn thêm một phần tử vào danh sách, độ dài của nó sẽ tăng thêm 1. Nếu bạn xóa phần tử đã thêm, độ dài sẽ giảm về 0. Bảng sau đây có thể cho bạn biết thêm về các phương thức của lớp
5: phương pháp Sự miêu tả
Thêm phần tử đã truyền vào danh sách
Thêm một phần tử vào một vị trí cụ thể trong danh sách.
Trả về phần tử có chỉ số là
7
Gán
8cho phần tử có chỉ số là
7
Loại bỏ phần tử có chỉ số là
7. Trả về phần tử đã loại bỏ.
Loại bỏ phần tử mà bạn truyền vào phương thức. Nếu có nhiều hơn một phần tử như vậy, phần tử đầu tiên sẽ bị xóa.
0 Xóa danh sách, nghĩa là xóa tất cả các phần tử khỏi danh sách.
1 Kiểm tra xem danh sách có chứa
8.
2 Kiểm tra xem danh sách có rỗng hay không. Nói cách khác, độ dài của danh sách có bằng không hay không.
3 Trả về kích thước của danh sách, tức là số phần tử trong danh sách.
4 Trả về một mảng chứa các phần tử của danh sách. Bạn cần truyền mảng cho phương thức. Các phương thức này cho phép bạn thực hiện hầu hết mọi thứ bạn muốn với danh sách: hoán đổi phần tử, thêm phần tử và xóa phần tử. Bạn có thể xóa danh sách bằng một lệnh hoặc thậm chí chuyển đổi danh sách thành một mảng. 4. So sánh
5và
9 Tôi không nghĩ rằng chúng ta có thể tránh so sánh
5và một mảng. Chỉ có 4 hành động bạn có thể thực hiện với mảng:
Dưới đây là các thao tác này khi chúng áp dụng cho một mảng và một
5: Mảng Lập danh sách
5
6
7
8
9
0
1
2 Hãy so sánh cách thức
5hoạt động của một mảng so với cách thức hoạt động của một mảng. Ví dụ: hãy thực hiện tác vụ này: "đọc 10 chuỗi từ bàn phím và hiển thị chúng trên màn hình theo thứ tự ngược lại" Sử dụng mảng Sử dụng ArrayList
3
4 Sự tương tự là rõ ràng. Mọi thứ bằng cách nào đó ngắn hơn và rõ ràng hơn đối với mảng. Nhưng
5cũng không khó: để lấy một phần tử, chúng ta sử dụng
8phương thức; để thay đổi một phần tử,
9phương thức; để lấy độ dài của danh sách,
0phương thức. |