Java ArrayList: Cổng Đến Các Tập Hợp Động
Giới Thiệu
Xin chào các bạn, những người yêu thích Java trong tương lai! Hôm nay, chúng ta sẽ khám phá một trong những công cụ thông minh và đa năng nhất của Java: ArrayList. Hãy tưởng tượng bạn đang tổ chức một buổi tiệc, nhưng bạn không chắc chắn bao nhiêu bạn bè sẽ đến. Bạn có thể đặt ra một số chiếc ghế cố định, nhưng điều gì xảy ra nếu có nhiều người đến hơn? Hoặc thậm chí, điều gì xảy ra nếu một nửa số chiếc ghế vẫn còn trống? Đó là nơi ArrayList có ích trong thế giới lập trình – nó như có một danh sách khách mà có thể tăng hoặc giảm theo nhu cầu!
Định Nghĩa Lớp
Hãy bắt đầu với những điều cơ bản. Trong Java, ArrayList là một phần của gói java.util. Để sử dụng nó, bạn cần phải nhập như sau:
import java.util.ArrayList;
Lớp ArrayList được định nghĩa như sau:
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
Đừng lo lắng nếu điều này có vẻ quá khó hiểu – chúng ta sẽ phân tích nó bước به bước!
Ý Nghĩa Của Điều Này Là Gì?
-
<E>
: Đây là tham số loại. Nó có nghĩa là ArrayList có thể chứa bất kỳ loại đối tượng nào. Như nói, "ArrayList này có thể chứa các thứ, và chúng ta sẽ xác định loại thứ đó sau." -
extends AbstractList<E>
: ArrayList phát triển dựa trên một lớp khác có tên là AbstractList. -
implements List<E>, RandomAccess, Cloneable, Serializable
: Những giao diện này mà ArrayList thực hiện, mang lại những khả năng cụ thể.
Các Hàm Khởi Tạo Của Lớp
Khi bạn tạo một ArrayList, bạn có ba lựa chọn:
-
Tạo một ArrayList trống:
ArrayList<String> friendsList = new ArrayList<>();
-
Tạo một ArrayList với khả năng đầu tiên:
ArrayList<Integer> numbers = new ArrayList<>(20);
-
Tạo một ArrayList từ một tập hợp khác:
ArrayList<Double> scores = new ArrayList<>(existingList);
Trong ví dụ đầu tiên, hãy tưởng tượng bạn đang bắt đầu một danh sách bạn bè mới. Trong ví dụ thứ hai, bạn đang chuẩn bị một danh sách của 20 số. Ví dụ thứ ba như là sao chép một danh sách khách hiện có để bắt đầu một danh sách mới.
Các Phương Thức Của Lớp
ArrayList đi kèm với một bộ công cụ đầy đủ các phương thức hữu ích. Hãy xem những phương thức phổ biến nhất:
Phương Thức | Mô Tả |
---|---|
add(E element) | Thêm phần tử vào cuối danh sách |
add(int index, E element) | Thêm phần tử vào vị trí cụ thể |
get(int index) | Trả về phần tử ở vị trí cụ thể |
set(int index, E element) | Thay thế phần tử ở vị trí cụ thể |
remove(int index) | Xóa phần tử ở vị trí cụ thể |
size() | Trả về số lượng phần tử trong danh sách |
clear() | Xóa tất cả phần tử khỏi danh sách |
contains(Object o) | Trả về true nếu danh sách chứa phần tử cụ thể |
Những phương thức này như những chiêu năng khác nhau – thêm khách, kiểm tra ai đang ở đó, hoặc yêu cầu ai đó rời đi (thoải mái, tất nhiên là!)
Các Phương Thức Kế Thừa
ArrayList cũng kế thừa các phương thức từ các lớp cha và giao diện của nó. Một số nổi bật bao gồm:
- Từ AbstractList: iterator(), listIterator()
- Từ AbstractCollection: toString(), isEmpty()
- Từ Object: clone(), equals(), hashCode()
Hãy nghĩ về chúng như những tính năng bổ sung mà bạn có được với ArrayList của mình!
Ví Dụ Thêm, Xóa Phần Tử Trong ArrayList Của Chuỗi
Hãy đặt kiến thức của chúng ta vào thực tế với một ví dụ thực tế. Chúng ta sẽ tạo một ArrayList để quản lý danh sách đọc sách:
import java.util.ArrayList;
public class ReadingList {
public static void main(String[] args) {
// Tạo một ArrayList để lưu trữ các tiêu đề sách
ArrayList<String> bookList = new ArrayList<>();
// Thêm sách vào danh sách
bookList.add("To Kill a Mockingbird");
bookList.add("1984");
bookList.add("The Great Gatsby");
System.out.println("Danh sách đọc ban đầu: " + bookList);
// Thêm một cuốn sách vào vị trí cụ thể
bookList.add(1, "Pride and Prejudice");
System.out.println("Sau khi thêm cuốn sách mới: " + bookList);
// Xóa một cuốn sách
bookList.remove("1984");
System.out.println("Sau khi xóa cuốn sách: " + bookList);
// Kiểm tra xem cuốn sách có trong danh sách hay không
String searchBook = "The Great Gatsby";
if (bookList.contains(searchBook)) {
System.out.println(searchBook + " có trong danh sách đọc của bạn!");
} else {
System.out.println(searchBook + " không có trong danh sách đọc của bạn.");
}
// Lấy kích thước của danh sách
System.out.println("Bạn có " + bookList.size() + " cuốn sách trong danh sách đọc của bạn.");
}
}
Hãy Phân Tích Nó:
- Chúng ta bắt đầu bằng cách tạo một ArrayList có tên là
bookList
để lưu trữ các đối tượng String (tiêu đề sách). - Chúng ta thêm ba cuốn sách bằng cách sử dụng phương thức
add()
. - Chúng ta in danh sách đầu tiên bằng cách sử dụng
System.out.println()
. Phương thứctoString()
của ArrayList được gọi tự động ở đây. - Chúng ta thêm "Pride and Prejudice" vào vị trí 1 (vị trí thứ hai) bằng cách sử dụng
add(int index, E element)
. - Chúng ta xóa "1984" bằng cách sử dụng phương thức
remove()
. - Chúng ta sử dụng
contains()
để kiểm tra xem "The Great Gatsby" có trong danh sách của chúng ta hay không. - Cuối cùng, chúng ta sử dụng
size()
để lấy số lượng cuốn sách trong danh sách của chúng ta.
Đầu Ra
Khi bạn chạy chương trình này, bạn sẽ thấy gần như như sau:
Danh sách đọc ban đầu: [To Kill a Mockingbird, 1984, The Great Gatsby]
Sau khi thêm cuốn sách mới: [To Kill a Mockingbird, Pride and Prejudice, 1984, The Great Gatsby]
Sau khi xóa cuốn sách: [To Kill a Mockingbird, Pride and Prejudice, The Great Gatsby]
The Great Gatsby có trong danh sách đọc của bạn!
Bạn có 3 cuốn sách trong danh sách đọc của bạn.
Và thế là đã! Bạn đã tạo, thao tác và khám phá một ArrayList. Như thể bạn đã tổ chức một buổi hội sách, thêm các cuốn sách mới, xóa những cuốn đã đọc, và theo dõi các cuộc phiêu lưu đọc sách của bạn.
Nhớ rằng, ArrayList rất linh hoạt. Bạn có thể sử dụng nó để quản lý các danh sách bất kỳ điều gì – số, đối tượng tùy chỉnh, hoặc thậm chí là các ArrayList khác! Khi bạn tiếp tục hành trình với Java, bạn sẽ thấy ArrayList trở thành một trong những công cụ đáng tin cậy nhất trong hộp công cụ lập trình của bạn.
Vì vậy, hãy tiếp tục luyện tập, luyện tập mã và nhất quán là hãy thích vui với Java! Ai biết? Có lẽ dự án lớn của bạn sẽ sử dụng ArrayList để thay đổi thế giới – một danh sách động mỗi lần!
Credits: Image by storyset