Trong các bài viết trước, tôi đã giới thiệu với các bạn HashMap và HashTable trong Java. Trong bài này, chúng ta cùng so sánh sự giống nhau và khác nhau giữa chúng.
1. Giống nhau của HashMap và Hashtable
- Cả HashMap và Hashtable đều cài đặt interface Map.
- HashMap và Hashtable đều được sử dụng để lưu trữ dữ liệu ở dạng cặp key và value.
- Cả hai đều đang sử dụng kỹ thuật băm để lưu trữ các khóa duy nhất.
2. Khác nhau của HashMap và Hashtable
HashMap | Hashtable |
HashMap cho phép một key là null và nhiều giá trị null. | Hashtable không cho phép bất kỳ key hoặc giá trị null. |
HashMap không đồng bộ. | Hashtable là đồng bộ. |
HashMap nhanh hơn Hashtable . | Hashtable chậm hơn HashMap. |
HashMap được duyệt bởi Iterator. | Hashtable được duyệt bởi Enumerator và Iterator. |
Iterator trong HashMap là fail-fast. | Enumerator trong Hashtable là không fail-fast. |
HashMap kế thừa lớp AbstractMap. | Hashtable kế thừa lớp Dictionary. |
Chúng ta có thể làm cho HashMap đồng bộ bằng cách gọi phương thức: Map m = Collections.synchronizedMap(hashMap); | Hashtable được đồng bộ nội bộ và không thể hủy đồng bộ hóa. |
HashMap được ưa thích trong các ứng dụng đơn luồng (single-thread). Nếu bạn muốn sử dụng HashMap trong ứng dụng đa luồng (mulit-thread), có thể thực hiện bằng cách sử dụng phương thức Collections.synchronizedMap(). | Mặc dù HashTable có để sử dụng trong các ứng dụng đa luồng (multi-thread), nhưng ngày nay nó ít được sử dụng. Bởi vì, ConcurrentHashMap là lựa chọn tốt hơn HashTable. |
Related posts:
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Converting String to Stream of chars
Spring Boot: Customize the Jackson ObjectMapper
Using Optional with Jackson
Java Program to Implement ConcurrentHashMap API
Jackson Ignore Properties on Marshalling
Java Program to Implement Triply Linked List
Spring Security Form Login
Adding Parameters to HttpClient Requests
Debugging Reactive Streams in Java
Spring Cloud AWS – EC2
Spring Boot - Application Properties
Java Program to Implement Hash Tables chaining with Singly Linked Lists
LinkedHashSet trong java
The Dining Philosophers Problem in Java
Map to String Conversion in Java
Hướng dẫn Java Design Pattern – Object Pool
Java Program to Implement Warshall Algorithm
Logging in Spring Boot
Java Map With Case-Insensitive Keys
Spring Security – security none, filters none, access permitAll
Java Program to Implement Bresenham Line Algorithm
Introduction to Spring Data JDBC
Java Program to Implement Ternary Search Algorithm
Convert a Map to an Array, List or Set in Java
“Stream has already been operated upon or closed” Exception in Java
Lập trình đa luồng trong Java (Java Multi-threading)
Primitive Type Streams in Java 8
Spring WebClient vs. RestTemplate
Control the Session with Spring Security
Introduction to Spring Cloud Stream
Converting Between an Array and a Set in Java