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 Stream API Analogies in Kotlin
HandlerAdapters in Spring MVC
Java Copy Constructor
Java Program to Implement wheel Sieve to Generate Prime Numbers Between Given Range
Map Interface trong java
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Spring Boot - File Handling
Practical Java Examples of the Big O Notation
Vòng lặp for, while, do-while trong Java
Java Program to Perform Partition of an Integer in All Possible Ways
Spring Boot - Sending Email
Disable Spring Data Auto Configuration
Java Program to Check the Connectivity of Graph Using BFS
Create a Custom Exception in Java
Java Program to implement Bi Directional Map
Copy a List to Another List in Java
The Spring @Controller and @RestController Annotations
Introduction to Spring Cloud Netflix – Eureka
Lớp Properties trong java
REST Web service: Upload và Download file với Jersey 2.x
Shuffling Collections In Java
Mapping a Dynamic JSON Object with Jackson
So sánh ArrayList và Vector trong Java
Java Program to Solve Tower of Hanoi Problem using Stacks
Java Program to Perform Stooge Sort
A Guide to ConcurrentMap
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Spring Boot - Actuator
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS
Toán tử trong java
Java Program to Find Number of Articulation points in a Graph