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:
Làm thế nào tạo instance của một class mà không gọi từ khóa new?
Hướng dẫn Java Design Pattern – Intercepting Filter
An Intro to Spring Cloud Security
Thao tác với tập tin và thư mục trong Java
Spring Security Authentication Provider
Java Program to Implement Find all Cross Edges in a Graph
Encode a String to UTF-8 in Java
ETL with Spring Cloud Data Flow
Java Program to Implement Expression Tree
Calling Stored Procedures from Spring Data JPA Repositories
Tránh lỗi NullPointerException trong Java như thế nào?
How to Find an Element in a List with Java
Spring Boot - Tomcat Port Number
Java Program to Implement LinkedBlockingDeque API
Guide to BufferedReader
Java Program to Implement Interpolation Search Algorithm
Beans and Dependency Injection
HashSet trong java
Java Program to Implement Fenwick Tree
Java Program to Implement Rope
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
The Guide to RestTemplate
Map Serialization and Deserialization with Jackson
Java Program to Compute Determinant of a Matrix
Concurrent Test Execution in Spring 5
Function trong Java 8
Configuring a DataSource Programmatically in Spring Boot
Multipart Upload with HttpClient 4
Serverless Functions with Spring Cloud Function
@Order in Spring
Lớp Collections trong Java (Collections Utility Class)
Vector trong Java