Trong các bài viết trước, tôi đã giới thiệu với các bạn HashMap và HashSet. Trong bài này, tôi sẽ so sánh sự giống nhau, khác nhau của 2 collection này.
1. Giống nhau của HashMap và HashSet
- Cả hai cấu trúc dữ liệu không duy trì bất kỳ thứ tự cho các phần tử truyền vào.
- Cả hai đều sử dụng phương thức hashCode () và equals () để duy trì tính duy nhất của dữ liệu.
- Cả hai cung cấp cho hiệu suất thời gian là hằng số cho các thao tác chèn (add/ put) và loại bỏ (remove).
- Cả hai đều không đồng bộ (non-synchronized).
2. Khác nhau của HashMap và HashSet
HashSet | HashMap |
HashSet cài đặt (implement) Set interface. | HashMap cài đặt (implement) Map interface. |
HashSet lưu trữ dữ liệu dưới dạng các đối tượng (object). | HashMap lưu trữ dữ liệu dưới dạng cặp khóa-giá trị (key-value). |
Bên trong HashSet sử dụng HashMap. | Bên trong HashMap sử dụng một mảng đối tượng Entry<K, V>. |
HashSet không cho phép các phần tử trùng lặp. | HashMap không cho phép các khóa (key) trùng lặp, nhưng cho phép các giá trị (value) trùng lặp. |
HashSet chỉ cho phép một phần tử null. | HashMap cho phép một khóa (key) null và nhiều giá trị (value) null. |
Thao tác chèn (insert/add) chỉ yêu cầu một đối tượng. | Thao tác chèn (put) yêu cầu hai đối tượng, khóa và giá trị (key-value). |
HashSet hơi chậm hơn HashMap. | HashMap nhanh hơn một chút so với HashSet. |
Sử dụng HashSet khi bạn cần duy nhất dữ liệu (object). | Sử dụng HashSet khi bạn cần duy nhất khóa (key). |
Related posts:
Sending Emails with Java
Lập trình đa luồng trong Java (Java Multi-threading)
Java Program to Implement Cubic convergence 1/pi Algorithm
Java Program to Implement Sparse Matrix
Câu lệnh điều khiển vòng lặp trong Java (break, continue)
How to Read HTTP Headers in Spring REST Controllers
Spring Security Remember Me
Pagination and Sorting using Spring Data JPA
Hashing a Password in Java
Setting a Request Timeout for a Spring REST API
Tạo ứng dụng Java RESTful Client với thư viện OkHttp
Java Program to Implement the String Search Algorithm for Short Text Sizes
Converting a Stack Trace to a String in Java
Java Program to Perform Searching Based on Locality of Reference
Examine the internal DNS cache
Apache Camel with Spring Boot
Spring Boot - Servlet Filter
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
A Guide to Java SynchronousQueue
Converting Java Date to OffsetDateTime
Java Program to Implement Ternary Heap
Flattening Nested Collections in Java
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Java – Delete a File
Kết hợp Java Reflection và Java Annotations
Java Program to Represent Graph Using Incidence List
Difference Between Wait and Sleep in Java
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Java – String to Reader
Java Program to Implement Bresenham Line Algorithm
Java Program to Compute the Volume of a Tetrahedron Using Determinants
Remove HTML tags from a file to extract only the TEXT