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:
Arrays.asList vs new ArrayList(Arrays.asList())
Spring Boot: Customize the Jackson ObjectMapper
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
Convert Time to Milliseconds in Java
A Guide to Concurrent Queues in Java
Java Program to Implement Leftist Heap
Introduction to Apache Commons Text
Exploring the Spring 5 WebFlux URL Matching
Convert String to Byte Array and Reverse in Java
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
Java Program to Evaluate an Expression using Stacks
Java Program to Perform Right Rotation on a Binary Search Tree
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Overflow and Underflow in Java
Removing all Nulls from a List in Java
Introduction to PCollections
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Java Program to Implement ArrayList API
Hướng dẫn Java Design Pattern – Null Object
Bootstrapping Hibernate 5 with Spring
An Intro to Spring Cloud Security
Lớp lồng nhau trong java (Java inner class)
Logout in an OAuth Secured Application
Converting Strings to Enums in Java
Introduction to Spring MVC HandlerInterceptor
Java Program to Implement Interpolation Search Algorithm
Java Program to Represent Graph Using Linked List
Practical Java Examples of the Big O Notation
Spring RestTemplate Error Handling
Java Program to Find Strongly Connected Components in Graphs
RegEx for matching Date Pattern in Java
Request Method Not Supported (405) in Spring