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:
Java 8 Predicate Chain
Extract links from an HTML page
Java Program to Implement LinkedList API
MyBatis with Spring
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Java Program to Implement Min Hash
A Guide to the ResourceBundle
Spring Boot - Admin Server
Derived Query Methods in Spring Data JPA Repositories
A Guide to TreeMap in Java
Java Program to Implement Miller Rabin Primality Test Algorithm
Java Program to Implement Bloom Filter
Using a List of Values in a JdbcTemplate IN Clause
Java 8 Collectors toMap
A Guide to Spring Boot Admin
Java Program to Implement ArrayList API
REST Pagination in Spring
New Features in Java 13
Spring Boot - Database Handling
Giới thiệu SOAP UI và thực hiện test Web Service
HttpAsyncClient Tutorial
Java Program to Compute Determinant of a Matrix
Java CyclicBarrier vs CountDownLatch
Prevent Brute Force Authentication Attempts with Spring Security
Spring Security Custom AuthenticationFailureHandler
@Lookup Annotation in Spring
String Initialization in Java
Chuyển đổi Array sang ArrayList và ngược lại
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
Introduction to Java Serialization
Chuyển đổi giữa các kiểu dữ liệu trong Java
Giới thiệu luồng vào ra (I/O) trong Java