67.Lớp Dictionary trong lập trình java

Trong lập trình Java, Dictionary là một lớp trừu tượng từ phiên bản JDK 1.2. Mặc dù nó là một lớp trừu tượng, nhưng Java không cung cấp một lớp cụ thể để triển khai Dictionary, thay vào đó, Java cung cấp hai lớp cụ thể để triển khai các cấu trúc dữ liệu từ điển (dictionary) là HashtableHashMap.

Dictionary định nghĩa một cấu trúc dữ liệu chứa các cặp key-value, trong đó key là duy nhất và không có các key trùng lặp. Bạn có thể thêm, lấy và xóa các phần tử từ từ điển bằng cách sử dụng key như một chỉ mục.

Dưới đây là các phương thức chính của lớp Dictionary:

  1. void put(Object key, Object value): Thêm một cặp key-value vào từ điển.
  2. Object get(Object key): Lấy giá trị tương ứng với key từ từ điển.
  3. void remove(Object key): Xóa cặp key-value có key tương ứng từ từ điển.
  4. Enumeration keys(): Trả về một Enumeration chứa các key của từ điển.
  5. Enumeration elements(): Trả về một Enumeration chứa các value của từ điển.

Dưới đây là ví dụ về cách sử dụng lớp Hashtable để triển khai cấu trúc dữ liệu từ điển:

java
import java.util.Hashtable;
import java.util.Enumeration;

public class DictionaryExample {
    public static void main(String[] args) {
        Hashtable<String, Integer> scores = new Hashtable<>();

        // Thêm các cặp key-value vào từ điển
        scores.put("Alice", 90);
        scores.put("Bob", 85);
        scores.put("Charlie", 95);

        // Lấy giá trị tương ứng với key
        int aliceScore = scores.get("Alice");
        System.out.println("Alice's score: " + aliceScore); // Output: Alice's score: 90

        // Xóa một cặp key-value từ từ điển
        scores.remove("Bob");

        // In ra danh sách key của từ điển
        Enumeration<String> keys = scores.keys();
        while (keys.hasMoreElements()) {
            String key = keys.nextElement();
            System.out.println("Key: " + key + ", Value: " + scores.get(key));
        }
        /* Output:
           Key: Charlie, Value: 95
           Key: Alice, Value: 90
        */
    }
}

Lưu ý rằng từ phiên bản JDK 1.2, Java khuyến khích sử dụng HashMap thay thế cho HashtableHashMap không đồng bộ (non-synchronized) nên cung cấp hiệu suất tốt hơn khi chỉ có một luồng thực thi. Tuy nhiên, nếu bạn cần một từ điển đồng bộ trong môi trường đa luồng, bạn có thể sử dụng Hashtable hoặc sử dụng các phương thức tạo bản đồ đồng bộ bằng Collections.synchronizedMap() để đóng gói HashMap thành một đối tượng đồng bộ.

Leave a Comment

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

Scroll to Top