http://vietjack.com/java/index.jsp Copyright © vietjack.com Lớp Hashtable Java Lớp Hashtable Java phần java.util gốc triển khai cụ thể Dictionary Tuy nhiên, Java thiết kế lại Hashtable để triển khai Map Interface Vì thế, lớp Hashtable tích hợp vào Collection Framework Nó tương tự HashMap, đồng Giống HashMap, lớp Hashtable lưu giữ cặp key/value hash table Khi sử dụng Hashtable, bạn xác định đối tượng mà sử dụng key, value mà bạn muốn liên kết tới key Key sau hash, hash code kết sử dụng mục, value lưu giữ bên table Để hiểu sâu khái niệm trình bày chương này, mời bạn tham khảo loạt bài: Ví dụ Cấu trúc liệu (Data Structure) Java Lớp Hashtable định nghĩa constructor Phiên constructor mặc định: Hashtable( ) Phiên thứ hai tạo Hashtable mà có kích cỡ khởi tạo xác định size: Hashtable(int size) Phiên thứ ba tạo Hashtable mà có kích cỡ khởi tạo xác định size fill ratio xác định fillRatio: Ratio phải nằm 0.0 1.0, định độ full hash table trước resize Hashtable(int size, float fillRatio) Phiên thứ tư tạo Hashtable mà mà khởi tạo với phần tử m Dung lượng Hash table thiết lập gấp hai lần số phần tử m Hệ số tải (load factor) 0.75 sử dụng Hashtable(Map m) http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Ngoài phương thức định nghĩa Map Interface, lớp Hashtable định nghĩa phương thức sau: STT Phương thức Miêu tả void clear( ) Reset làm trống hash table Object clone( ) Trả đối tượng gọi boolean contains(Object value) Trả true value cân với value tồn bên hash table Trả false value khơng tìm thấy boolean containsKey(Object key) Trả true key cân với key tồn bên hash table Trả false key khơng tìm thấy boolean containsValue(Object value) Trả true value cân với value tồn bên hash table Trả false value khơng tìm thấy Enumeration elements( ) Trả liệt kê value chứa hash table Object get(Object key) Trả đối tượng mà chứa value mà liên kết với key Nếu key khơng có hash table, đối tượng null trả http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com boolean isEmpty( ) Trả true hash table trống; chứa key trả false Enumeration keys( ) Trả liệt kê key chứa hash table 10 Object put(Object key, Object value) Chèn key value vào hash table Trả null key khơng có hash table; trả value trước mà liên kết với key key có hash table 11 void rehash( ) Tăng kích cỡ hash table làm lại tất key 12 Object remove(Object key) Gỡ bỏ key value Trả value mà liên kết với key Nếu key khơng có hash table, đối tượng null trả 13 int size( ) Trả số entry hash table 14 String toString( ) Trả biểu diễn chuỗi tương đương hash table Ví dụ Chương trình sau minh họa số phương thức hỗ trợ lớp Hashtable Java: import java.util.*; public class HashTableDemo { public static void main(String args[]) { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com // Create a hash map Hashtable balance = new Hashtable(); Enumeration names; String str; double bal; balance.put("Zara", new Double(3434.34)); balance.put("Mahnaz", new Double(123.22)); balance.put("Ayan", new Double(1378.00)); balance.put("Daisy", new Double(99.22)); balance.put("Qadir", new Double(-19.08)); // Show all balances in hash table names = balance.keys(); while(names.hasMoreElements()) { str = (String) names.nextElement(); System.out.println(str + ": " + balance.get(str)); } System.out.println(); // Deposit 1,000 into Zara's account bal = ((Double)balance.get("Zara")).doubleValue(); balance.put("Zara", new Double(bal+1000)); System.out.println("Zara's new balance: " + balance.get("Zara")); } } Nó cho kết sau: Qadir: -19.08 Zara: 3434.34 Mahnaz: 123.22 Daisy: 99.22 http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Ayan: 1378.0 Zara's new balance: 4434.34 http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... lớp Hashtable Java: import java. util.*; public class HashTableDemo { public static void main(String args[]) { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp...http://vietjack.com /java/ index.jsp Copyright © vietjack.com Ngồi phương thức định nghĩa Map Interface, lớp Hashtable định nghĩa phương thức sau: STT Phương thức... Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com // Create a hash map Hashtable balance = new Hashtable( ); Enumeration names; String str; double bal; balance.put("Zara", new Double(3434.34));