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:
Using JWT with Spring Security OAuth
Functional Interfaces in Java 8
Guide to @ConfigurationProperties in Spring Boot
Allow user:password in URL
Java Program to Implement LinkedTransferQueue API
Spring Data JPA Delete and Relationships
Java – Try with Resources
Java 14 Record Keyword
How to Remove the Last Character of a String?
Convert XML to JSON Using Jackson
Java – Reader to InputStream
Test a REST API with Java
Spring Boot - Rest Template
How to Delay Code Execution in Java
Prevent Brute Force Authentication Attempts with Spring Security
Getting the Size of an Iterable in Java
Guide to Guava Multimap
Display Auto-Configuration Report in Spring Boot
Introduction to Spring Cloud OpenFeign
Add Multiple Items to an Java ArrayList
Java Program to Implement Direct Addressing Tables
Java Program to Implement Karatsuba Multiplication Algorithm
Vòng lặp for, while, do-while trong Java
Remove the First Element from a List
Returning Image/Media Data with Spring MVC
Transaction Propagation and Isolation in Spring @Transactional
Model, ModelMap, and ModelAndView in Spring MVC
Jackson Exceptions – Problems and Solutions
Working with Kotlin and JPA
Java Program to Generate Date Between Given Range
Adding a Newline Character to a String in Java
Java 9 Stream API Improvements