81.Lớp TreeSet trong lập trình Java

Trong lập trình Java, TreeSet là một lớp trong cấu trúc dữ liệu Set. Nó triển khai giao diện NavigableSet và được sử dụng để duy trì một tập hợp các phần tử không trùng lặp theo thứ tự tăng dần hoặc giảm dần.

TreeSet triển khai cơ chế dựa trên cây (self-balancing binary search tree) để duy trì các phần tử trong tập hợp. Do đó, việc truy xuất, thêm, xóa phần tử và tìm kiếm các phần tử trong TreeSet có độ phức tạp là O(log n), nơi n là số lượng phần tử trong tập hợp.

Điểm nổi bật của TreeSet là thứ tự tự nhiên của các phần tử, cho phép duyệt qua các phần tử theo thứ tự tăng dần hoặc giảm dần.

Dưới đây là cách tạo và sử dụng TreeSet trong Java:

  1. Khởi tạo một đối tượng TreeSet trống:
java
import java.util.TreeSet;

TreeSet<String> treeSet = new TreeSet<>();
  1. Thêm phần tử vào TreeSet:
java
treeSet.add("apple");
treeSet.add("banana");
treeSet.add("orange");
  1. Duyệt qua TreeSet theo thứ tự tăng dần:
java
for (String fruit : treeSet) {
    System.out.println(fruit);
}

Kết quả đầu ra sẽ là:





apple
banana
orange
  1. Duyệt qua TreeSet theo thứ tự giảm dần bằng cách sử dụng iterator:
java
import java.util.Iterator;

Iterator<String> descendingIterator = treeSet.descendingIterator();
while (descendingIterator.hasNext()) {
    System.out.println(descendingIterator.next());
}

Kết quả đầu ra sẽ là:





orange
banana
apple

Một số điểm cần lưu ý về TreeSet:

  • Các phần tử trong TreeSet phải là các đối tượng có thể so sánh được (implement interface Comparable hoặc sử dụng một Comparator được cung cấp khi khởi tạo) để xác định thứ tự giữa chúng.
  • TreeSet không cho phép các phần tử trùng lặp. Nếu bạn thêm một phần tử đã tồn tại trong tập hợp, nó sẽ không thay đổi tập hợp và không có thông báo lỗi.
  • TreeSet không đồng bộ (non-synchronized). Nếu bạn cần sử dụng nó trong môi trường đa luồng (multi-threading), bạn nên thêm đồng bộ hóa để đảm bảo tính toàn vẹn dữ liệu.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top