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:
A Guide to BitSet in Java
Receive email by java client
Hướng dẫn Java Design Pattern – Interpreter
Hướng dẫn Java Design Pattern – Iterator
Java Program to Implement Nth Root Algorithm
Java Program to Implement Hash Tables
Spring Boot Application as a Service
Introduction to Spliterator in Java
Introduction to Spring MVC HandlerInterceptor
Java Program to Test Using DFS Whether a Directed Graph is Strongly Connected or Not
The Order of Tests in JUnit
LIKE Queries in Spring JPA Repositories
Feign – Tạo ứng dụng Java RESTful Client
Spring 5 Functional Bean Registration
Java Program to Generate a Random Subset by Coin Flipping
Java Program to Implement Sorted Singly Linked List
Debug a JavaMail Program
A Guide to JPA with Spring
Control the Session with Spring Security
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Iterable to Stream in Java
Enum trong java
Partition a List in Java
New Features in Java 10
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Hướng dẫn Java Design Pattern – Builder
A Guide to the finalize Method in Java
Java Program to Implement HashMap API
Hướng dẫn Java Design Pattern – Abstract Factory
Java Program to Implement SimpeBindings API
Java Program to Search Number Using Divide and Conquer with the Aid of Fibonacci Numbers
Lớp HashMap trong Java