83. Lớp TreeMap trong lập trình Java

Trong lập trình Java, TreeMap là một lớp trong cấu trúc dữ liệu Map. Nó triển khai giao diện NavigableMap và được sử dụng để lưu trữ các cặp key-value, trong đó mỗi key là duy nhất và không trùng lặp.

TreeMap duy trì các phần tử theo thứ tự tự nhiên của key, được sắp xếp theo thứ tự tăng dần hoặc giảm dần (phụ thuộc vào trình tự so sánh của key).

TreeMap sử dụng cơ chế cây đỏ-đen (red-black tree) để duy trì các phần tử, giúp đảm bảo thời gian truy xuất, thêm, xóa phần tử trong TreeMap là O(log n), nơi n là số lượng phần tử trong TreeMap.

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

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

TreeMap<String, Integer> treeMap = new TreeMap<>();

Trong ví dụ trên, String là kiểu dữ liệu của key và Integer là kiểu dữ liệu của value.

  1. Thêm phần tử vào TreeMap:
java
treeMap.put("apple", 5);
treeMap.put("banana", 3);
treeMap.put("orange", 7);
  1. Truy xuất giá trị thông qua key:
java
int numberOfApples = treeMap.get("apple"); // numberOfApples sẽ là 5
  1. Duyệt qua các cặp key-value trong TreeMap:
java
for (String key : treeMap.keySet()) {
    int value = treeMap.get(key);
    System.out.println(key + ": " + value);
}

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

makefile
apple: 5
banana: 3
orange: 7

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

  • TreeMap cho phép key có giá trị null, nhưng chỉ cho phép một key null duy nhất (nếu thêm nhiều key null, key cuối cùng sẽ ghi đè lên các key null trước đó).
  • TreeMap 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.
  • Nếu bạn cần duyệt qua TreeMap theo thứ tự chèn (thứ tự thêm vào) hoặc thứ tự tự nhiên của các phần tử, bạn có thể sử dụng lớp LinkedHashMap hoặc TreeMap với bộ so sánh (Comparator) phù hợp.

Leave a Comment

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

Scroll to Top