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!

Java - ArrayList

Đị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:

  1. Tạo một ArrayList trống:

    ArrayList<String> friendsList = new ArrayList<>();
  2. Tạo một ArrayList với khả năng đầu tiên:

    ArrayList<Integer> numbers = new ArrayList<>(20);
  3. 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ó:

  1. 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).
  2. Chúng ta thêm ba cuốn sách bằng cách sử dụng phương thức add().
  3. Chúng ta in danh sách đầu tiên bằng cách sử dụng System.out.println(). Phương thức toString() của ArrayList được gọi tự động ở đây.
  4. 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).
  5. Chúng ta xóa "1984" bằng cách sử dụng phương thức remove().
  6. 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.
  7. 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