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 Program to Check for balanced parenthesis by using Stacks
Java Program to Implement Binary Heap
Java Program to Implement Merge Sort Algorithm on Linked List
Java IO vs NIO
Using Custom Banners in Spring Boot
The Registration Process With Spring Security
Java Program to Implement Suffix Tree
Java Program to Implement PriorityQueue API
Java Program to Find Maximum Element in an Array using Binary Search
Guide to the Volatile Keyword in Java
Sorting in Java
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Spring Cloud – Bootstrapping
Array to String Conversions
Default Password Encoder in Spring Security 5
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Introduction to Spring Cloud OpenFeign
Spring Cloud AWS – Messaging Support
Finding the Differences Between Two Lists in Java
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Different Ways to Capture Java Heap Dumps
Java Optional as Return Type
Java Program to Implement Direct Addressing Tables
Remove All Occurrences of a Specific Value from a List
Hướng dẫn Java Design Pattern – Intercepting Filter
A Guide to Java HashMap
Java Program to Implement Quick Sort with Given Complexity Constraint
Connect through a Proxy
Spring Boot Annotations
Lập trình đa luồng với CompletableFuture trong Java 8
Command-Line Arguments in Java
Quick Intro to Spring Cloud Configuration