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:
Overflow and Underflow in Java
Get the workstation name or IP
Apache Commons Collections OrderedMap
Join and Split Arrays and Collections in Java
Java Program to Check for balanced parenthesis by using Stacks
Spring @RequestMapping New Shortcut Annotations
Updating your Password
Java Program to Implement the Hill Cypher
Phân biệt JVM, JRE, JDK
Uploading MultipartFile with Spring RestTemplate
Mapping Nested Values with Jackson
Mệnh đề Switch-case trong java
Count Occurrences of a Char in a String
Java Program to Implement Multi-Threaded Version of Binary Search Tree
Spring MVC Setup with Kotlin
Introduction to Project Reactor Bus
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Feign – Tạo ứng dụng Java RESTful Client
Java Program to Perform String Matching Using String Library
Immutable Map Implementations in Java
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Spring MVC and the @ModelAttribute Annotation
Java Program to Perform Partition of an Integer in All Possible Ways
Spring Security Form Login
Tổng quan về ngôn ngữ lập trình java
Spring Data JPA Delete and Relationships
Java Program to Implement Suffix Array
Java Program to Implement Rope
Spring Boot - Cloud Configuration Client
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
LIKE Queries in Spring JPA Repositories