Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Xóa tất cả phần tử khỏi ArrayList trong Java

Để xóa toàn bộ phần tử khỏi ArrayList trong Java, sử dụng phương thức clear().

Cú pháp

arrayList.clear();

Phương thức này:

  • Xóa tất cả phần tử khỏi list.
  • Kích thước (size) trở về 0.
  • Dung lượng (capacity) không thay đổi (vẫn giữ mảng nội bộ để tái sử dụng).
  • Trả về void.

Ví dụ hoàn chỉnh

import java.util.ArrayList;

public class Demo {
    public static void main(String[] args) {
        ArrayList arrlist = new ArrayList<>(5);
        
        // Thêm phần tử
        arrlist.add(25);
        arrlist.add(50);
        arrlist.add(75);
        arrlist.add(100);
        arrlist.add(150);
        arrlist.add(200);
        arrlist.add(250);
        
        System.out.println("Danh sách ban đầu:");
        for (Integer number : arrlist) {
            System.out.println("Number = " + number);
        }
        
        int size = arrlist.size();
        System.out.println("Danh sách có " + size + " phần tử");
        
        System.out.println("Thực hiện clear()...");
        arrlist.clear();
        
        size = arrlist.size();
        System.out.println("Sau clear: " + size + " phần tử");
        
        // Kiểm tra capacity (không public API, nhưng nội bộ mảng vẫn giữ nguyên)
        System.out.println("Danh sách rỗng: " + arrlist);
        System.out.println("isEmpty(): " + arrlist.isEmpty());
    }
}

Kết quả

Danh sách ban đầu:
Number = 25
Number = 50
Number = 75
Number = 100
Number = 150
Number = 200
Number = 250
Danh sách có 7 phần tử
Thực hiện clear()...
Sau clear: 0 phần tử
Danh sách rỗng: []
isEmpty(): true

Các cách khác để xóa phần tử

Phương phápMô tảLưu ý
clear()Xóa tất cả, giữ capacityNhanh nhất, O(1) amortized
removeAll(Collection)Xóa các phần tử có trong collection khácO(n*m), hữu ích khi xóa theo điều kiện
removeIf(Predicate)Xóa phần tử thỏa predicate (Java 8+)Dễ đọc, lọc điều kiện
Gán new ArrayList<>()Tạo list mới, GC dọn list cũGiải phóng memory (capacity), chậm hơn
list = nullBỏ tham chiếu, chờ GCChỉ dùng khi không cần list nữa

Ví dụ removeIf (Java 8+)

// Xóa số chẵn
list.removeIf(n -> n % 2 == 0);

// Xóa chuỗi rỗng hoặc null
list.removeIf(s -> s == null || s.isEmpty());

Lưu ý hiệu năng

  • clear() chỉ đặt size = 0 và null-out các reference trong mảng backing (để GC), rất nhanh.
  • Nếu muốn giải phóng bộ nhớ backing array, gán list mới: list = new ArrayList<>();
  • trimToSize() sau clear() không làm gì vì size=0, capacity không giảm (implementation detail).